MySQL-3.23.55

Introduction to MySQL

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.

Installation of mysql

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

Command explanations

sed -e "s%mysql-test/Makefile%%" -e "s% mysql-test%%" configure.old > configure: This sed is used to disable the mysql test suite.

Configuring mysql

Config files

/etc/my.cnf, ~/.my.cnf

Configuration Information

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`

mysql init.d script

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

Contents

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

Description

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.