使用 mysqld_safe 启动 mysqld 服务

mysqld_safe 介绍

mysqld_safe is the recommended way to start a mysqld server on Unix. mysqld_safe adds some safety features such as restarting the server when an error occurs and logging runtime information to an error log. [1]

在 Unix 机器上,MySQL 官方推荐使用 mysqld_safe 启动 mysqld 服务。mysqld_safe 增加了一些安全特性,比如它会在遇到错误时重启 mysqld 服务,并把运行时信息记录到 error log 中。

启动

下述是以 CentOS 为例,使用 mysqls_safe 启动 mysqld 服务的命令。

mysqld_safe --defaults-file=my.cnf > mysqld.log 2>&1 &

其中 --defaults-file=my.cnf 指定了默认的配置文件为当前目录下的 my.cnf,我在里面指定了端口为 3306。> mysqld_log 指定了将标准输出重定向到 msyqld.log2>&1 表示将标准错误输出重定向到标准输出,末尾的 & 表示后台运行。因此,执行上述命令,我们使用 mysqld_safemy.cnf 中的配置启动了一个 mysqld 进程,它始终在后台运行,所有的输出(包括错误输出)都将汇集到 mysqld.log 文件中。

按下回车执行命令后,终端将返回这个任务的编号和进程号,如果后续想要再次查看,可以通过 jobs -l 命令来查看当前 Shell 环境中所有的任务。

[root@centos conf]# mysqld_safe --defaults-file=my.cnf > mysqld.log 2>&1 &
[1] 37225
[root@centos conf]# jobs -l
[1]+ 37225 Running                 mysqld_safe --defaults-file=my.cnf > mysqld.log 2>&1 &

其中 [1] 代表任务号,+ 代表这是最近一个任务,37225 代表进程号 PID,剩下的代表启动任务的命令。

至此,mysqld 服务启动成功。我们可以执行下述命令来尝试连接它。

[mysql@centos ~]$ mysql -h127.0.0.1 -P3306 -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.

如上,显示 Welcome 则连接成功。

停止

执行下述命令查看 mysqld 的 PID:

netstat -antp | grep mysqld

找到绑定地址为:::3306 的进程,执行下述命令以杀死 mysqld 进程:

kill $PID

  1. //dev.mysql.com/doc/refman/5.7/en/mysqld-safe.html ↩︎

Tags: