MySQL--❤️‍几种启动和停止服务的风险分析☀️Linux生产环境运维必备

代码 代码 1506 人阅读 | 0 人回复

<
您好,我是贾斯汀,欢送出去进修的小同伴~
【进修背景】
  本文对Linux下启动战截至mysql效劳最经常使用的几种方法停止讲解:
(1)mysqld
(2)mysqld_safe
(3)mysql.server
(4)mysqladmin
闭于那几种文件战号令对mysql效劳的启动战截至的利用,本文会别离停止引见,另有一些枢纽的事项,好比消费情况关于MySQL效劳的启动战截至口角常慎重的一件事,没有是每种方法皆合适消费利用的,需求弄分明再利用,那里分享出去,祈望对有需求的小同伴有协助~

进进注释之前,那里先分析一下,实践的消费情况宁静的启动普通皆利用mysqld_safe去启动mysql效劳,利用mysqladmin宁静截至mysql效劳,具体进进注释停止分析~
倡议除Linux末端用户root,借应建一个一般用户mysql装置战运维数据库~
进进注释~


进修目次



1、mysqld

1.1 号令引见

  (1)mysqld是mysql的保护历程,间接利用这类方法启动,会减载MySQL设置(如:/etc/my.cnf)中的[mysqld]战[server]组下的参数内乱容~
(2)普通经由过程脚动挪用mysqld去启动mysql效劳,这类方法只要一个mysqld历程,出有保护历程,假如mysql效劳挂了,出有查抄重启的机造,消费情况没有会利用这类方法启动mysql效劳~
1.2 号令利用

1.2.1 启动

进进到mysql的bin目次下施行:
  1. cd /opt/mysql/mysql-5.7.29/bin
  2. mysqld --defaults-file=/data/mysqldata/my.cnf --user=mysql &
复造代码
大概经由过程设置硬链接后再施行:
  1. ln -s /opt/mysql/mysql-5.7.29/bin/mysqld /usr/bin/mysqld
  2. mysqld --defaults-file=/data/mysqldata/my.cnf --user=mysql &
复造代码
094640lssilhvhgug74avu.png

假如毗邻没有胜利,请查察毛病日志看具体启动mysql效劳的报错缘故原由~
查察设置my.cnf毛病日志途径,示例:
  1. [mysqld]
  2. log-error=/data/mysqllog/client-error.log
复造代码
查察mysql记载毛病日志:
  1. tail -f /data/mysqllog/client-error.log
复造代码
假如前里mysqld启动mysql效劳失利,client-error.log会挨印出具体报错缘故原由~
例如,我把设置my.cnf宁静途径设置secure_file_priv前里减个p,会报错以下:
094640exg5rnxnnizc552u.png

1.2.1 截至

截至的方法也有好几种,开辟情况便利调试能够按实践需求利用,确保消费情况利用mysqladmin便止~
(1)间接杀失落历程号
  1. ps -ef|grep mysqld
  2. kill -9 历程号
复造代码
(2)mysqladmin号令截至(倡议)
施行号令:
  1. /opt/mysql/mysql-5.7.29/bin/mysqladmin -uroot -p -S /data/mysqldata/mysql.sock shutdown
复造代码
胜利提醒:
094641uspudpvivtw8vutk.png

留意:号令中的root用户是mysql.user表中的数据库用户,mysql.sock途径,经由过程查察设置my.cnf获得,示例:
  1. [mysqld]
  2. socket=/data/mysqldata/mysql.sock
复造代码
2、mysqld_safe

2.1 号令引见

  (1)翻开mysqld_safe,能够看到实际上是一个Shell剧本,这类方法启动除会减载MySQL设置(如:/etc/my.cnf)中的[mysqld]战[server]组下的参数内乱容以外,为了兼容老版本,借会减载[safe_mysqld]组下的内乱容~
(2)施行剧本mysqld_safe时,剧本中会来挪用mysqld启动mysqld战monitor mysqld两个历程,monitor即监视的意义,如许假如mysql效劳挂了,那末mysqld_safe会从头启动mysqld历程~
经由过程mysqld_safe启动mysql效劳这类方法是消费运维倡议利用的启动方法~
2.2 号令利用

2.2.1 启动

进进到mysql的bin目次下施行:
  1. cd /opt/mysql/mysql-5.7.29/bin
  2. /opt/mysql/mysql-5.7.29/bin/mysqld_safe --defaults-file=/data/mysqldata/my.cnf --user=mysql >/data/mysqllog/mysqld_safe.log 2>&1 &
复造代码
启动胜利:
094641aqnqoz2endivdhds.png

能够发明mysqld_safe方法启动,的确会有两个历程~
当我kill -9 mysqld历程(模拟mysql效劳挂失落),发明监视历程会主动给我从头启动好mysqld的历程,没有影响mysql效劳一般运转~
094641ngn6usuwmpo76l66.png

2.2.2 截至

(1)间接杀失落历程号
  1. ps -ef|grep mysqld
  2. kill -9 历程号
复造代码
这类方法慎用!!!
(2)mysqladmin号令截至(倡议)
施行号令:
  1. /opt/mysql/mysql-5.7.29/bin/mysqladmin -uroot -p -S /data/mysqldata/mysql.sock shutdown
复造代码
胜利提醒:
094641gnpnywozncy8pchr.png

留意:号令中的root用户是mysql.user表中的数据库用户,mysql.sock途径,经由过程查察设置my.cnf获得,示例:
  1. [mysqld]
  2. socket=/data/mysqldata/mysql.sock
复造代码
3、mysql.server

3.1 号令引见

  (1)剧本mysql.server是mysql装置目次support-files下的一个文件,也是一个启动Shell剧本,剧本中会来挪用mysqld_safe剧本
(2)次要经由过程拷贝mysql.server剧本刀片/etc/init.d/目次下,并定名为mysql,完成便利启动战截至~
(3)启动service mysql start、截至service mysql start,十分合适开辟情况的运维~
094642otjtatdarbisenrd.png

3.2 号令利用

3.2.1 修正剧本

修正剧本mysql.server中的相干目次疑息(按实践修正):
装置目次: basedir=/data/mysql/mysql-5.7.29
数据目次: datadir=/data/mysqldata/3306
socket目次: lockdir=&#39;/data/mysqldata&#39;
那里修正mysql.server中的my.cnf有一个小成绩,默许是/etc/my.cnf,我修正途径成我本人的/data/mysqldata/my.cnf,前面也复造mysql.server到/etc/init.d/目次并重定名为mysql了了,可是不断没有奏效,没有明白为啥,有明白的小同伴能够留行,那里先留个TODO,先利用默许的/etc/my.cnf吧,需求把我的设置内乱容拷贝到/etc/my.cnf内里~
094642h6n642uufu22m4lk.png


TODO弥补:
修正support-files/mysql.server中默许my.cnf自界说设置途径没有奏效成绩~
  1.       #那里才是mysql.server挪用mysqld_safe启动MySQL效劳的进口
  2.       #本来那里默许mysqld_safe施行只是指定了datadir数据目次
  3.       #$bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null &
  4.       #重写mysqld_safe指定为my.cnf详细途径,my.cnf中曾经设置好数据目次,没有再需求指定参数
  5.       $bindir/mysqld_safe --defaults-file=/data/mysqldata/my.cnf $other_args >/dev/null &
复造代码
详情以下图分析:
094642w8jcz88za34a2d3q.png


将剧本mysql.server拷贝到/etc/init.d/初初化效劳目次下,并定名~
  1. cp /opt/mysql/mysql-5.7.29/support-files/mysql.server /etc/init.d/mysql
  2. cp /opt/mysql/mysql-5.7.29/support-files/mysql.server /etc/init.d/mysqld
复造代码
3.2.2 开机自启动

没有需求设置开机自启动,可疏忽此步~
增加自启动号令:
  1. chkconfig --add mysql
  2. chkconfig --add mysqld
复造代码
删除自启动号令:
  1. chkconfig --del mysql
  2. chkconfig --del mysqld
复造代码
查察自启动列表号令:
  1. chkconfig --list
复造代码
094642uh3bylj63y6bee7n.png

PS:如上图,2/3/4/5皆是on开的话则胜利,默许级别是2/3/4/5~
3.2.3 启动效劳

号令: service mysql start
启动胜利,提醒以下:
094643ug6lsqebe4b4egl4.png

3.2.1 截至效劳

(1)间接杀失落历程号
  1. ps -ef|grep mysqld
  2. kill -9 历程号
复造代码
这类方法慎用!!!
(2)service号令截至
  1. service mysql stop
复造代码
(2)mysqladmin号令截至(倡议)
施行号令:
  1. /opt/mysql/mysql-5.7.29/bin/mysqladmin -uroot -p -S /data/mysqldata/mysql.sock shutdown
复造代码
胜利提醒:
094643nptqlca4gaqqta4p.png

留意:号令中的root用户是mysql.user表中的数据库用户,mysql.sock途径,经由过程查察设置my.cnf获得,示例:
  1. [mysqld]
  2. socket=/data/mysqldata/mysql.sock
复造代码
其他号令: service mysql {start|stop|restart|reload|force-reload|status}
留意:最初再提一下,kill间接杀失落历程方法慎用!!实践的消费情况倡议标准利用mysqld_safe去启动mysql效劳,利用mysqladmin截至mysql效劳~
附录

Windows下启动战截至方法比较简朴~
启动MySQL效劳号令:net start mysql
封闭MySQL效劳号令:net stop mysql

本创不容易,以为有效的小同伴去个一键三连(面赞+珍藏+批评 )+存眷撑持一下,十分感激~
094643e00rzthhn40gfcmc.png

094643ux9y09gg4l9l90z0.png


免责声明:假如进犯了您的权益,请联络站少,我们会实时删除侵权内乱容,感谢协作!
1、本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,按照目前互联网开放的原则,我们将在不通知作者的情况下,转载文章;如果原文明确注明“禁止转载”,我们一定不会转载。如果我们转载的文章不符合作者的版权声明或者作者不想让我们转载您的文章的话,请您发送邮箱:Cdnjson@163.com提供相关证明,我们将积极配合您!
2、本网站转载文章仅为传播更多信息之目的,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证信息的正确性和完整性,且不对因信息的不正确或遗漏导致的任何损失或损害承担责任。
3、任何透过本网站网页而链接及得到的资讯、产品及服务,本网站概不负责,亦不负任何法律责任。
4、本网站所刊发、转载的文章,其版权均归原作者所有,如其他媒体、网站或个人从本网下载使用,请在转载有关文章时务必尊重该文章的著作权,保留本网注明的“稿件来源”,并自负版权等法律责任。
回复 关闭延时

使用道具 举报

 
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则