MySQL认证教程:自动运行和停止MySQL
最新学讯:近期OCP认证正在报名中,因考试人员较多请尽快报名获取最近考试时间,报名费用请联系在线老师,甲骨文官方认证,报名从速!
我要咨询MySQL认证教程:自动运行和停止MySQL,如果安装一个实用的数据库系统,那么让每次系统重新启动时数据库服务器自动运行是一个好主意。
一、我们现在可以由两种方法启动数据库:
1、 可以用safe_mysqld脚本来启动数据库:
$ safe_mysqld &
safe_mysqld脚本安装在MySQL安装目录的bin目录下,或可在MySQL源代码分发的scripts目录下找到。
2、mysql.server脚本可以被用来启动或停止服务器,通过用start或stop参数调用它:
$ mysql.server start
$mysql.server stop
mysql.server stop通过向服务器发出一个信号停止它。你可手工执行mysqladmin shutdown关闭服务器。
mysql.server可在MySQL二进制分发安装目录下的“share/mysql”目录里找到,或在MySQL源代码树的“support-files”目录下找到。
二、让服务器以指定的Unix用户执行
方法一:修改mysql.server脚本
当然,这样只对使用mysql.server脚本启动系统的方法其作用。
在mysql.server启动服务器之前,它把目录改变到MySQL安装目录,然后调用safe_mysqld。如果你有在一个非标准的地点安装的二进制分发,你可能需要编辑mysql.server。修改它,运行safe_mysqld前,cd到正确的目录。如果你想要作为一些特定的用户运行服务器,你可以改变mysql_daemon_user=root行使用其他用户,你也能修改mysql.server把其他选项传给safe_mysqld。
方法二:使用选项文件
通过使用选项文件,你也可以也可以避免修改mysql.server脚本。使用选项文件也可以使safe_mysqld脚本通过特定用户启动mysqld守护程序。
你也可以在一个全局“/etc/my.cnf”文件中增加mysql.server的选项。一个典型的“/etc/my.cnf”文件的一部分可能看起来像这样:
[mysql.server]
user=mysql
basedir=/usr/local/mysql
mysql.server脚本使用下列变量:user、datadir、basedir、bindir和pid-file。
当然这样只对mysql.server脚本起作用,可以把user选项加到[mysqld]段中,由于这两个脚本都调用mysqld守护程序,因此,这样可以从特定用户启动。
[mysqld]
user=mysql
basedir=/usr/local/mysql
mysqld守护程序接受的选项可以由命令mysqld –help查看。
说明,修改了mysql.server脚本或者选项文件后,你可能注意到我们没有提供用户的密码,所以如果你做了如上的修改,那么就不可以从普通帐户启动服务器,因为只有root用户才有切换到任意用户的权力。
三、让MySQL随系统启动而自动启动
当你开始使用MySQL作为生产应用时,你可能想要增加这些启动并且停止命令到在你的“/etc/rc * 文件中适当的地方。注意如果你修改mysql.server,那么如果某个时候你升级MySQL时,你的修改版本将被覆盖,因此你应该做一个你可重新安装的编辑过的版本的拷贝。
下面简述一下在Red Hat Linux系统中的设置方法:
1、修改mysql.server,把它复制到/etc/rc.d/init.d目录里面:
# cd /etc/rc.d/init.d
# cp /usr/local/mysql/support-files/mysql.server mysql
2、接着把它的属性改为“x”(executable,可执行)
# chmod +x mysql
3、最后,运行chkconfig把MySQL添加到你系统的启动服务组里面去。
# /sbin/chkconfig --del mysql
# /sbin/chkconfig --add mysql
说明
如果你的系统使用“/etc/rc.local”启动外部脚本,你也可以添加下列到其中:
二进制分发:
/bin/sh -c 'cd /usr/local/mysql ; ./bin/safe_mysqld &'
源代码分发:
/bin/sh -c 'cd /usr/local/ ; ./bin/safe_mysqld &'
当然,作者更推荐使用mysqlv.server的方法,因为这样可以提供系统更好的整合性。