当前位置: Oracle DBA培训网-优技培训 >> MySQL培训 > MySQL培训教程 >

MySQL入门教程:怎么自动运行和停止MySQL

MySQL入门教程:怎么自动运行和停止MySQL

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的方法,因为这样可以提供系统更好的整合性。

技术沙龙MORE+

标签错误:<!-- #Label# labelId=20160707140604 moduleId=1 classId=12231768634 orderby=2 fields=url,title,u_info attribute= datatypeId=22192428132 recordCount=3 pageSize= <htmlTemplate><dt><img src="/images/index_26${index}.jpg" width="100" height="62" /><a href="$url" title="${title}">${title}</a><span>${api.left(u_info,60)}</span></dt></htmlTemplate> -->
我要参加技术沙龙