%general-entities; ]> $LastChangedBy$ $Date$ MySQL-&mysql-version; MySQL Introduction to MySQL MySQL is a widely used and fast SQL database server. It is a client/server implementation that consists of a server daemon and many different client programs and libraries. Package Information Download (HTTP): Download (FTP): Download MD5 sum: &mysql-md5sum; Download size: &mysql-size; Estimated disk space required: &mysql-buildsize; Estimated build time: &mysql-time; MySQL Dependencies Optional and User Notes: Installation of MySQL For security reasons, running the server as an unprivileged user and group is strongly encouraged: groupadd -g 40 mysql && useradd -c "MySQL Server" -d /dev/null -g mysql -s /bin/false \ -u 40 mysql Build and install MySQL by running the following commands: C_EXTRA_FLAGS=-fno-strict-aliasing \ ./configure --prefix=/usr \ --sysconfdir=/etc \ --libexecdir=/usr/sbin \ --localstatedir=/srv/mysql \ --enable-thread-safe-client \ --enable-assembler \ --enable-local-infile \ --with-unix-socket-path=/var/run/mysql/mysql.sock \ --without-debug \ --without-bench \ --without-readline \ --with-berkeley-db \ --with-extra-charsets=all && make testdir=/tmp/mysql To test the results, issue: make test. Note that if you have a restrictive /etc/hosts.deny file, you will need to add an appropriate entry to the /etc/hosts.allow file for the mysqld daemon, else many of the tests will fail. Now, as the root user: make testdir=/tmp/mysql install && rm -rf /tmp/mysql && cd /usr/lib && ln -v -sf mysql/libmysqlclient{,_r}.so* . The only documentation shipped in the source tarball are mysql.info and manual.chm (Microsoft Help format) files. You can download various formats of the MySQL Reference Manual from . Command Explanations C_EXTRA_FLAGS=-fno-strict-aliasing: This environment variable adjusts the compiler optimization to avoid failures in the testsuite and other operations. --libexecdir=/usr/sbin: This switch installs the mysqld daemon and the mysqlmanager program in an appropriate location. --localstatedir=/srv/mysql: This switch forces MySQL to use /srv/mysql for database files and other variable data. --enable-thread-safe-client: This switch compiles a thread-safe MySQL client library. --enable-assembler: This switch allows using assembler versions of some string functions. --enable-local-infile: This switch enables the LOAD DATA INFILE SQL statement. --with-unix-socket-path=/var/run/mysql: This switch puts the unix-domain socket into the /var/run/mysql directory instead of the default /tmp. --without-bench: This switch skips building the benchmark suite. --without-readline: This switch forces the build to use the system copy of readline instead of the bundled copy. --with-berkeley-db: This switch enables using Berkeley DB tables as a back end. --with-extra-charsets=all: This switch enables international character sets within the suite. make testdir=...: This installs the test suite in /tmp/mysql. The test suite is not required, nor does it function properly on an installed version of MySQL, so it is removed in the next step. ln -v -sf mysql/libmysqlclient{,_r}.so* .: This command makes the MySQL shared libraries available to other packages at run-time. : This switch adds OpenSSL support to MySQL. : This switch adds tcpwrappers support to MySQL. Configuring MySQL Config Files /etc/my.cnf and ~/.my.cnf ~/.my.cnf /etc/my.cnf Configuration Information There are several default configuration files available in /usr/share/mysql which you can use. Create /etc/my.cnf using the following command as the root user: install -v -m644 /usr/share/mysql/my-medium.cnf /etc/my.cnf You can now install a database and change the ownership to the unprivileged user and group (perform as the root user): mysql_install_db --user=mysql && chgrp -v mysql /srv/mysql{,/test,/mysql} Further configuration requires that the MySQL server is running. Start the server using the following commands as the root user: install -v -m755 -o mysql -g mysql -d /var/run/mysql && mysqld_safe --user=mysql 2>&1 >/dev/null & A default installation does not set up a password for the administrator, so use the following command as the root user to set one. Replace <new-password> with your own. mysqladmin -u root password <new-password> Configuration of the server is now finished. Shut the server down using the following command as the root user: mysqladmin -p shutdown Boot Script Install the /etc/rc.d/init.d/mysql init script included in the package as the root user to start the MySQL server during system boot-up. mysql make install-mysql Contents Installed Programs Installed Libraries Installed Directories comp_err, innochecksum, msql2mysql, my_print_defaults, myisam_ftdump, myisamchk, myisamlog, myisampack, mysql, mysql_client_test, mysql_config, mysql_convert_table_format, mysql_create_system_tables, mysql_explain_log, mysql_find_rows, mysql_fix_extensions, mysql_fix_privilege_tables, mysql_install_db, mysql_secure_installation, mysql_setpermission, mysql_tableinfo, mysql_tzinfo_to_sql, mysql_waitpid, mysql_zap, mysqlaccess, mysqladmin, mysqlbinlog, mysqlbug, mysqlcheck, mysqld, mysqld_multi, mysqld_safe, mysqldump, mysqldumpslow, mysqlhotcopy, mysqlimport, mysqlmanager, mysqlshow, mysqltest, mysqltestmanager, mysqltestmanager-pwgen, mysqltestmanagerc, perror, replace, resolve_stack_dump, and resolveip libdbug.a, libheap.a, libmyisam.a, libmyisammrg.a, libmysqlclient.{so,a}, libmysqlclient_r.{so,a}, libmystrings.a, libmysys.a, and libvio.a /srv/mysql, /usr/include/mysql, /usr/lib/mysql, /usr/share/mysql, and /var/run/mysql Short Descriptions Descriptions of all the programs and libraries would be several pages long. Instead, consult the mysql.info documentation or the on-line reference manual at . The Perl DBI modules must be installed for some of the MySQL support programs to function properly.