Download location (HTTP): http://mysql.he.net/Downloads/MySQL-3.23/mysql-3.23.55.tar.gz Download location (FTP): ftp://mirror.mcs.anl.gov/pub/mysql/Downloads/MySQL-3.23/mysql-3.23.55.tar.gz Version used: 3.23.55 Package size: 11 MB Estimated Disk space required: 70 MB |
The MySQL package contains the mysql library, server and client utilities.
For security reasons, running the server as an unpriviledged user and group is strongly encouraged:
groupadd mysql && useradd -c mysql -d /dev/null -g mysql -s /bin/false mysql |
Build and install mysql by running the following commands:
cp configure configure.old && sed -e "s%mysql-test/Makefile%%" -e "s% mysql-test%%" configure.old > configure && ./configure --prefix=/usr \ --sysconfdir=/etc \ --libexecdir=/usr/sbin \ --localstatedir=/var/lib/mysql \ --enable-thread-safe-client \ --without-debug \ --without-bench && make && make install |
sed -e "s%mysql-test/Makefile%%" -e "s% mysql-test%%" configure.old > configure: This sed is used to disable the mysql test suite.
/etc/my.cnf, ~/.my.cnf
There are several default configurations file available in /usr/share/mysql which you can use.
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf |
We can now install a database and change the ownership to the unpriviledged user and group.
mysql_install_db chown -R mysql:mysql /var/lib/mysql |
Further configuration requires that the mysql server be running:
safe_mysqld 2>&1 >/dev/null & |
A default installation, does not setup a password for the administrator. So here we will login and set one. We strongly suggest changing 'new-password' to your own.
mysql -uroot mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 to server version: 3.23.51-log Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> UPDATE user SET password=password('new-password') WHERE user='root'; Query OK, 2 rows affected (0.00 sec) Rows matched: 2 Changed: 2 Warnings: 0 mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec) mysql> EXIT; bye |
Now that we are done with the configuration of the server, we can shut it down.
kill `pidof -x safe_mysqld mysqld` |
To automate the running of mysql, use the following command to create the init.d script:
cat > /etc/rc.d/init.d/mysql << "EOF" #!/bin/bash # Begin $rc_base/init.d/ # Based on sysklogd script from LFS-3.1 and earlier. # Rewritten by Gerard Beekmans - gerard@linuxfromscratch.org source /etc/sysconfig/rc source $rc_functions case "$1" in start) echo "Starting MySQL daemon..." /usr/bin/safe_mysqld 2>&1 >/dev/null & evaluate_retval ;; stop) echo "Stopping MySQL daemon..." killproc mysqld ;; restart) $0 stop sleep 1 $0 start ;; status) statusproc /usr/sbin/mysqld ;; *) echo "Usage: $0 {start|stop|restart|status}" exit 1 ;; esac # End $rc_base/init.d/ EOF chmod 755 /etc/rc.d/init.d/mysql |
Create the symbolic links to this file in the relevant rc.d directory with the following commands:
cd /etc/rc.d/init.d && ln -sf ../init.d/mysql ../rc0.d/K26mysql && ln -sf ../init.d/mysql ../rc1.d/K26mysql && ln -sf ../init.d/mysql ../rc2.d/K26mysql && ln -sf ../init.d/mysql ../rc3.d/S34mysql && ln -sf ../init.d/mysql ../rc4.d/S34mysql && ln -sf ../init.d/mysql ../rc5.d/S34mysql && ln -sf ../init.d/mysql ../rc6.d/K26mysql |
The mysql package contains mysql, mysqladmin, mysqlcheck, mysqlshow, mysqldump, mysqlimport, mysqltest, mysqlbinlog, replace, comp_err, perror, resolveip, my_print_defaults, resolve_stack_dump, isamchk, isamlog, pack_isam, myisamchk, myisamlog, myisampack, safe_mysqld, mysql_install_db, msql2mysql, mysql_config, mysql_fix_privilege_tables, mysql_setpermission, mysql_zap, mysqlacess, mysqlbug, mysql_convert_table_format, mysql_find_rows, mysqlhotcopy, mysqldumbslow, mysqld_multi and mysqld
A package listing would be several pages long, we suggest consulting the mysql documentation for full details, instead.
Certain mysql support programs may require the perl DBI modules to be installed to function properly.