通常你可以用以下方法启动mysqld服务器:
? 直接调用mysqld。该方法适合任何平台。
? 作为Windows服务运行MySQL服务器。可以在支持服务的Windows版本(例如NT、2000、XP和2003)上实现。可以将服务设置为在Windows启动时自动启动服务器,或根据需要启动的手动服务。相关说明参见2.3.12节,“以Windows服务方式启动MySQL”。
? 调用mysqld_safe,可以为mysqld确定正确的选项然后使用这些选项来运行。该脚本适用于基于BSD Unix的系统。请参见5.1.3节,“mysqld_safe:MySQL服务器启动脚本”。
? 调用mysql.server。该脚本主要用于使用系统V-style运行目录的系统的启动和关闭,它通常安装到mysql下。mysql.server脚本调用mysqld_safe来启动服务器。请参见5.1.4节,“mysql.server:MySQL服务器启动脚本”。
? 你可以在Mac OS X上安装一个单独的MySQL Startup Item安装包来使系统启动时自动启动MySQL。Startup Item调用mysql.server来启动服务器。详细介绍参见2.5节,“在Mac OS X上安装MySQL”。
mysql.server和mysqld_safe脚本和Mac OS X Startup Item可以用来手动启动服务器,或自动启动系统。mysql.server和Startup Item还可以用来停止服务器。
mysql.server脚本可以被用来启动或停止服务器,通过用start或stop参数调用它:
shell>mysql.server start
shell>mysql.server stop
在mysql.server启动服务器之前,它把目录改变到MySQL安装目录,然后调用safe_mysqld。如果你想要作为一些特定的用户运行服务器,在/etc/my.cnf选项文件的[mysqld]组增加相应user选项,如本节后面所示。(如果你有在一个非标准的地点安装的二进制分发版,你可能需要编辑mysql.server。修改它,运行safe_mysqld前,cd到正确的目录。注意如果你修改mysql.server,那么某个时候升级MySQL时,你的修改版本将被覆盖,因此你应该做一个你可重新安装的编辑过的版本的拷贝)。
mysql.server stop通过向服务器发出一个信号停止它。你可手动执行mysqladmin shutdown关闭服务器。
要想在服务器上自动启动和停止MySQL,应在“/etc/rc *文件中适当的地方增加启动、停止命令。
如果你使用Linux服务器RPM安装软件包(MySQL-server-VERSION.rpm),mysql.server脚本安装在/etc/init.d目录中,名为MySQL。你不需要手动安装它。关于Linux RPM软件包的详细信息参见2.4节,“在Linux下安装MySQL”。
一些供应商提供的RPM软件包安装的启动脚本名字不同,例如mysqld。
如果从不自动安装mysql.server的源码分发版或二进制分发版格式来安装MySQL,可以手动安装它。可以在MySQL安装目录下或MySQL源码树的support-files目录中找到脚本。
要想手动安装mysql.server,用名称mysql将它复制到/etc/init.d目录,然后将它变为可执行文件。只需要将位置更改为mysql.serveris所在并执行这些命令的相应目录:
shell>cp mysql.server /etc/init.d/mysql
shell>chmod +x /etc/init.d/mysql
旧的Red Hat系统使用/etc/rc.d/init.d目录,不使用/etc/init.d。相应地调节前面的命令。也可以首先创建指向/etc/rc.d/init.d的符号连接/etc/init.d:
shell>cd /etc
shell>ln -s rc.d/init.d .
安装脚本后,用来激活它以便在系统启动时运行所需要的命令取决于你的操作系统。在Linux中,你可以使用chkconfig:
shell>chkconfig --addMySQL
在一些Linux系统中,还需要下面的命令来完全激活MySQL脚本:
shell>chkconfig --level 345MySQL on
在FreeBSD中,启动脚本通常应当位于/usr/local/etc/rc.d/。手册的rc(8)页内说明只有该目录脚本的基本名匹配*.shshell文件名模式,脚本才会执行。目录内的其它文件或目录将被忽略掉。换句话说,在FreeBSD中,应当将mysql.server脚本安装为/usr/local/etc/rc.d/mysql.server.sh以便自动启动。
前面设置的另一种情况是,一些操作系统启动时也使用/etc/rc.local或/etc/init.d/boot.local来启动其它服务。要想使用该方法启动MySQL,你可以在相应启动文件后面追加一条命令:
/bin/sh -c 'cd /usr/local/mysql; ./bin/mysqld_safe --user=mysql &'
对于其它系统,查阅操作系统的文档来查看安装启动脚本的方法。
你也可以在一个全局“/etc/my.cnf”文件中增加mysql.server的选项。一个典型的“/etc/my.cnf”文件可能看起来像这样:
[mysqld]
datadir=/usr/local/mysql/var
socket=/var/tmp/mysql.sock
port=3306
user=mysql
[mysql.server]
basedir=/usr/local/mysql
mysql.server脚本使用下列变量:basedir、datadir和pid-file。定义后,必须将它们放到选项文件中,不能放到命令行。mysql.server只识别start和stop命令行参数。
下面的表显示了服务器和每个启动脚本从选项文件读取哪个选项组:
脚本 |
选项组 |
mysqld |
[mysqld],[server],[mysqld-major-version] |
mysql.server |
[mysqld],[mysql.server],[server] |
mysqld_safe |
[mysqld],[server],[mysqld_safe] |
[mysqld-major-version]意味着名为[mysqld-5.0]的组,[mysqld-5.1]用于版本为5.0.x、5.1.x等的服务器。该特性可以用来指定只被给定发布系列的服务器读取的选项。
为了向后兼容,mysql.server还读取[mysql_server]组,mysqld_safe还读取[safe_mysqld]组。然而,当使用MySQL 5.1时,你应当更新选项文件,使用[mysql.server]和[mysqld_safe]组。
参见4.3.2节,“使用选项文件”。