Building and installing the MySQL server from the source code is relatively very easy when compared to many other OSS applications. At least that was my experience. The following simplified installation instructions were based on the
MySQL 5.0 Reference Manual .
Steps for setting up the MySQL 5.x environment on Sun Solaris
- Create 'mysql' group, then 'mysql' user.
eg.,
# mkdir /export/software/mysql
# groupadd mysql
# useradd -g mysql -d /export/software/mysql -s /bin/bash mysql
# passwd mysql
New Password: mysql
Re-enter new Password: mysql
# chown mysql:mysql /export/software/mysql
- Login as 'mysql' user; and add the following directories to the PATH environment variable:
eg.,
% cat ~/.bashrc
PATH=/usr/bin:/usr/sbin:/usr/openwin/bin:/usr/ccs/bin:/usr/ucb:/usr/sfw/bin:/opt/csw/bin:/usr/local/bin:.:$PATH
export PATH
- Download MySQL 5.0.51b source code from the location: http://dev.mysql.com/downloads/mysql/5.0.html#source. Download the compressed GNU TAR archive (tar.gz).
- Run "configure" with the following options.
eg.,
% ./configure --prefix=~/MySQL5051b --enable-shared --enable-thread-safe-client --with-pic --with-debug=no
- Run "make all" to build MySQL
eg.,
% make all
- Run "make install" to install MySQL either in /usr/local directory or the directory specified in "--prefix" during the "configure" task.
eg.,
% make install
- Initialize the grant tables. "mysql_install_db" program sets up the initial MySQL grant tables containing the privileges that determine how users are allowed to connect to the server. mysql_install_db needs to be run only the first time you install MySQL on Solaris from the source code.
eg.,
% pwd
/export/software/mysql/MySQL5051b/bin
% ./mysql_install_db --user=mysql
Installing MySQL system tables...
OK
Filling help tables...
OK
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/export/software/mysql/MySQL5051b/bin/mysqladmin -u root password 'new-password'
/export/software/mysql/MySQL5051b/bin/mysqladmin -u root -h unknown password 'new-password'
Alternatively you can run:
/export/software/mysql/MySQL5051b/bin/mysql_secure_installation
which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.
See the manual for more instructions.
...
...
- Start the MySQL server
eg.,
% ./mysqld_safe &
Starting mysqld daemon with databases from /export/software/mysql/MySQL5051b/var
- Verify that the server is running
eg.,
% ./mysqladmin version
./mysqladmin Ver 8.41 Distrib 5.0.51b, for pc-solaris2.11 on i386
Copyright (C) 2000-2006 MySQL AB
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license
Server version 5.0.51b
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /tmp/mysql.sock
Uptime: 4 min 28 sec
Threads: 1 Questions: 1 Slow queries: 0 Opens: 12 Flush tables: 1 Open tables: 6 Queries per second avg: 0.004
- Verify that you can retrieve information from the server.
- List the existing databases
eg.,
% mysqlshow
+--------------------+
| Databases |
+--------------------+
| information_schema |
| test |
+--------------------+
- List the tables in one of the existing databases.
eg.,
% mysqlshow information_schema
Database: information_schema
+---------------------------------------+
| Tables |
+---------------------------------------+
| CHARACTER_SETS |
| COLLATIONS |
| COLLATION_CHARACTER_SET_APPLICABILITY |
| COLUMNS |
| COLUMN_PRIVILEGES |
| KEY_COLUMN_USAGE |
| PROFILING |
| ROUTINES |
| SCHEMATA |
| SCHEMA_PRIVILEGES |
| STATISTICS |
| TABLES |
| TABLE_CONSTRAINTS |
| TABLE_PRIVILEGES |
| TRIGGERS |
| USER_PRIVILEGES |
| VIEWS |
+---------------------------------------+
- Retrieve the row count from one of the tables in the "information_schema" database.
eg.,
% mysql -e "SELECT COUNT(*) FROM TABLES" information_schema
+----------+
| COUNT(*) |
+----------+
| 17 |
+----------+
- Finally shutdown the MySQL server. Only privileged MySQL users can shutdown the MySQL server. The grant tables (step #7) step creates a superuser account with username 'root'. This account pertains to MySQL only. It is no way related to the OS username. The initial 'root' account password is empty, so anyone can connect to the MySQL server as 'root' without a password; and be granted all privileges.
eg.,
% id
uid=65539(mysql) gid=104(mysql)
% ./mysqladmin shutdown
./mysqladmin: shutdown failed; error: 'Access denied; you need the SHUTDOWN privilege for this operation'
% ./mysqladmin -u root shutdown
Check the other window for the shutdown confirmation where you started the MySQL server.
% ./mysqld_safe
Starting mysqld daemon with databases from /export/software/mysql/MySQL5051b/var
STOPPING server from pid file /export/software/mysql/MySQL5051b/var/unknown.pid
080612 13:59:09 mysqld ended
At this point "mysqladmin version" should return an error.
% ./mysqladmin version
./mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)'
Check that mysqld is running and that the socket: '/tmp/mysql.sock' exists!
________________
Technorati Tags:
Sun Solaris |
OpenSolaris |
MySQL