启动数据库
mysql对应的二进制文件是 mysqld,可以直接使用它来启动数据库,但我们一般不这么做。
可以将安装目录下的 support-files/ 下的 mysql.server 作为模版来书写 mysql 的 SysV 启停脚本 mysqld。该脚本是调用的 mysqld_safe 来启停 mysql,,mysqld_safe 再去调用 mysqld 二进制文件,当然我们也可以自已写脚本来调用 mysqld_safe 对 mysql 进行启停。
使用 mysqld_safe 启动 MySQL 的好处是:
1.如果 mysqld 进程异常崩溃(如 kill -9),只要 mysqld_safe 还活着,就会自动再把 mysqld 进程再起起来;
2.它会通过检查 datadir 下是否存在 mysql.sock.lock 文件来判断实例是否已经启动, mysqld 则不会,它会直接失败。
3.mysql_safe 可以用 root 来运行,它会使用 mysql 用户来运行 mysqld 进程。不能使用 root 用户直接运行 mysqld。
使用 mysqld_safe 启动 MySQL 数据库的方法如下:
$ mysqld_safe --defaults-file=/data/mysqldata/3306/my.cnf &
[1] 3515
180416 14:10:45 mysqld_safe Logging to '/data/mysqldata/3306/mysql-error.log'.
180416 14:10:45 mysqld_safe Starting mysqld daemon with databases from /data/mysqldata/3306/data
启动 MySQL 的时候,如果没指定参数文件,则会按照下面的顺序去读取参数文件:
# bin/mysqld --verbose --help | grep my.cnf
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
注意:
1.默认都会读取,如果一个参数在多个文件中存在,后面的会覆盖前面的。
2.如果不存在任何参数文件,则会尝试以默认值启动。默认值可以通过 mysqld --help --verbose 查看到。
关闭数据库
关闭数据库正常是使用mysqladmin(特殊情况可以杀进程):
$ mysqladmin -uroot -pxxx -S /path/mysql.sock shutdown <-- socket 文件可以通过 ps aux 查看