mysql关闭 区别_mysql的关闭和启动方式

这里只是阐述我知道的几种启动和关闭方式

使用mysqld来启动mysql数据库

[root@mysql_master ~]# /opt/mysql/bin/mysqld --defaults-file=/etc/my.cnf &

记得需要加后面的&,不加的话,你可以试试看会有什么不同。mysqld是最原始的开启mysql的方法,其他的启动方法,他最终使用的还是用mysqld来启动。

开启完数据库以后,需要检测一下是否正确开启。检查进程是否起来,端口号是否被正确占用

[root@mysql_master ~]# ps -ef | grep mysql

mysql 2121 2077 0 17:00 pts/0 00:00:02 /opt/mysql/bin/mysqld --defaults-file=/etc/my.cnf

root 2170 2077 0 17:05 pts/0 00:00:00 grep mysql

[root@mysql_master ~]# netstat -anp | grep 3306

tcp 0 0 :::3306 :::* LISTEN 2121/mysqld

使用mysql_safe来启动mysql数据库

第一次我直接使用这种方式启动,竟然报错讲

[root@mysql_master /]# /opt/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &

[1] 2856

[root@mysql_master /]# 160301 17:28:38 mysqld_safe Logging to '/data/mysql_master.err'.

160301 17:28:38 mysqld_safe The file /usr/local/mysql/bin/mysqld

does not exist or is not executable. Please cd to the mysql installation

directory and restart this script from there as follows:

./bin/mysqld_safe&

See http://dev.mysql.com/doc/mysql/en/mysqld-safe.html for more information

[1]+ Exit 1 /opt/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf

根据提示,cd到了mysql目录,在执行就成功了

[root@mysql_master mysql]# ./bin/mysqld_safe --defaults-file=/etc/my.cnf &

[1] 2969

[root@mysql_master mysql]# 160301 17:32:41 mysqld_safe Logging to '/data/mysql_master.err'.

160301 17:32:41 mysqld_safe Starting mysqld daemon with databases from /data

[root@mysql_master mysql]# ps -ef | grep mysql

root 2969 2077 0 17:32 pts/0 00:00:00 /bin/sh ./bin/mysqld_safe --defaults-file=/etc/my.cnf

mysql 3081 2969 1 17:32 pts/0 00:00:00 /opt/mysql/bin/mysqld --defaults-file=/etc/my.cnf --basedir=/opt/mysql --datadir=/data --plugin-dir=/opt/mysql/lib/plugin --user=mysql --log-error=/data/mysql_master.err --pid-file=/data/mysql_master.pid

root 3104 2077 0 17:33 pts/0 00:00:00 grep mysql

[root@mysql_master mysql]# netstat -anp | grep 3306

tcp 0 0 :::3306 :::* LISTEN 3081/mysqld

这里mysqld_safe和mysqld的区别只是在于mysqld_safe会在数据库死了以后自动再去拉起来,而mysqld死了就死了,不会再去试图拉数据库。

下面试试看就知道了

下看看mysql进程的信息

[root@mysql_master ~]# ps -ef | grep mysql

root 2969 2077 0 17:32 pts/0 00:00:00 /bin/sh ./bin/mysqld_safe --defaults-file=/etc/my.cnf

mysql 3141 2969 1 17:42 pts/0 00:00:00 /opt/mysql/bin/mysqld --defaults-file=/etc/my.cnf --basedir=/opt/mysql --datadir=/data --plugin-dir=/opt/mysql/lib/plugin --user=mysql --log-error=/data/mysql_master.err --pid-file=/data/mysql_master.pid

root 3184 2184 0 17:42 pts/1 00:00:00 grep mysql

可以看到这里有一个mysqld进程和mysqld_safe两个进程,真正的mysql数据库进程就是mysqld。然后根据pid杀了他

[root@mysql_master ~]# kill -9 3141

然后再次查看mysqld进程的

[root@mysql_master ~]# ps -ef | grep mysql

root 2969 2077 0 17:32 pts/0 00:00:00 /bin/sh ./bin/mysqld_safe --defaults-file=/etc/my.cnf

mysql 3200 2969 0 17:44 pts/0 00:00:00 /opt/mysql/bin/mysqld --defaults-file=/etc/my.cnf --basedir=/opt/mysql --datadir=/data --plugin-dir=/opt/mysql/lib/plugin --user=mysql --log-error=/data/mysql_master.err --pid-file=/data/mysql_master.pid

root 3229 2184 0 17:44 pts/1 00:00:00 grep mysql

可以看到mysqld还是活着的,但是进程号变了,变成了3200。说明mysqld死了以后,mysqld_safe马上就把它拉起来了。你可以试一下在用mysqld启动数据库的时候,杀了它会不会起来。

使用service mysql start来启动

把/opt/mysql/support-files/mysql.server 移动到/etc/init.d/下面就可以了

[root@mysql_master support-files]# cp /opt/mysql/support-files/mysql.server /etc/init.d/mysql

[root@mysql_master support-files]# service mysql start

Starting MySQL [ OK ]

[root@mysql_master support-files]# service mysql start

Starting MySQL [ OK ]

[root@mysql_master support-files]# service mysql stop

Shutting down MySQL.. [ OK ]

当然还可直接用/etc/init.d/mysql 使用启动mysql数据库

[root@mysql_master support-files]# /etc/init.d/mysql start

Starting MySQL. [ OK ]

在看一下进程情况的话,可以看到

[root@mysql_master support-files]# ps -ef | grep mysql

root 4392 1 0 18:03 pts/1 00:00:00 /bin/sh /opt/mysql/bin/mysqld_safe --datadir=/data --pid-file=/data/mysql_master.pid

mysql 4577 4392 0 18:03 pts/1 00:00:00 /opt/mysql/bin/mysqld --basedir=/opt/mysql --datadir=/data --plugin-dir=/opt/mysql/lib/plugin --user=mysql --log-error=/data/mysql_master.err --pid-file=/data/mysql_master.pid

root 4608 2184 0 18:05 pts/1 00:00:00 grep mysql

可以看到这种方式是用mysqld_safe来启动mysql的,那么最终使用的还是mysqld启动的mysql。

关闭mysql数据库

[root@mysql_master support-files]# /opt/mysql/bin/mysqladmin shutdown

[root@mysql_master support-files]# service mysql stop

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值