mysql 几种启动和关闭mysql方法介绍

devtools/2024/11/14 10:52:24/

https://dev.mysql.com/doc/refman/5.7/en/programs-server.html

mysql几种启动方法

方法1、mysqld
mysqld指定读取my.cnf配置文件启动,加一个 & 实现后台启动。终端不会被阻塞

./mysqld --defaults-file=/etc/my.cnf &

方法2、mysqld_safe

  ./mysqld_safe –defaults-file=/etc/my.cnf  & 

方法3、mysql.server
将support-files/mysql.server 脚本做成一个linux服务。使用服务的方式启动

cp -v /usr/local/mysql/support-files/mysql.server /etc/init.d/ 
chkconfig –add mysql.server 
service mysql.server {start|stop|restart|reload|force-reload|status} 

方法4、./etc/init.d/mysqld start

这种方式其实和support-files一样。不过更清晰点,我比较喜欢用这个。

方法5、mysqld_multi
mysqld_multi 主要用来多实例启动的。见 https://www.jianshu.com/p/88adb36bbca9

mysqld和mysqld_safe启动有什么区别?

1、使用file命令分别查看mysqld和mysqld_safe两个执行文件。可见
mysqld是一个64位的 dynamically linked ;
mysqld_safe 是一个shell script;shell脚本。可以直接编辑的。

[root@localhost bin]# file mysqld
mysqld: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, BuildID[sha1]=e1d1f6fd34afae9ac33181c12d605976c81cc6e1, not stripped
[root@localhost bin]# file mysqld_safe 
mysqld_safe: POSIX shell script, ASCII text executable

2、使用ps-ef查看下二者区别
mysqld

[root@localhost bin]# ps -ef |grep mysql
mysql      9294   8364 12 11:12 pts/2    00:00:00 ./mysqld --defaults-file=/etc/my.cnf

mysqld_safe

[root@localhost ~]# ps -ef |grep mysql
root       9399   8364  0 11:13 pts/2    00:00:00 /bin/sh ./mysqld_safe --defaults-file=/etc/my.cnf
mysql      9555   9399  2 11:13 pts/2    00:00:00 /home/mysql5.7/mysql-5.7.33-linux-glibc2.12-x86_64/bin/mysqld --defaults-file=/etc/my.cnf --basedir=/home/mysql5.7/mysql-5.7.33-linux-glibc2.12-x86_64 --datadir=/mdata/mysql57 --plugin-dir=/home/mysql5.7/mysql-5.7.33-linux-glibc2.12-x86_64/lib/plugin --user=mysql --log-error=error.log --pid-file=localhost.localdomain.pid --socket=/tmp/mysql.sock3

mysqld_safe命令启动的方式要比mysqld启动多了一个mysqld_safe的进程;mysqld_safe 其实就是mysqld服务的一个守护进程;它的作用是当mysql宕机后会自动重启mysqld服务。所以平时应该使用mysqld_safe。

如下我手动kill掉9555这个mysql进程,随后再次执行ps -ef |grep mysql 发现又生成了一个pid为9918 的mysql进程。

[root@localhost ~]# kill -9 9555
[root@localhost ~]# ps -ef |grep mysql
root       9399   8364  0 11:13 pts/2    00:00:00 /bin/sh ./mysqld_safe --defaults-file=/etc/my.cnf
mysql      9918   9399  8 11:19 pts/2    00:00:00 /home/mysql5.7/mysql-5.7.33-linux-glibc2.12-x86_64/bin/mysqld --defaults-file=/etc/my.cnf --basedir=/home/mysql5.7/mysql-5.7.33-linux-glibc2.12-x86_64 --datadir=/mdata/mysql57 --plugin-dir=/home/mysql5.7/mysql-5.7.33-linux-glibc2.12-x86_64/lib/plugin --user=mysql --log-error=error.log --pid-file=localhost.localdomain.pid --socket=/tmp/mysql.sock3305 --port=3305
root       9950   8476  0 11:19 pts/3    00:00:00 grep --color=auto mysql

mysql几种关闭方法

mysql终端使用,需要密码 方法1、进入mysql终端执行shutdown命令可以关闭mysql服务

[root@localhost bin]# mysql -S /tmp/mysql.sock3305 -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.33 MySQL Community Server (GPL)Copyright (c) 2000, 2021, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.(root@localhost) [(none)]>shutdown;
Query OK, 0 rows affected (0.00 sec)(root@localhost) [(none)]>show variables like '%port%';
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock3305' (2)
ERROR: 
Can't connect to the server(root@not_connected) [(none)]>exit;
Bye
[root@localhost bin]# 

mysql终端使用,需要密码 方法2、在mysql终端关闭mysql的另一种命令:
mysqladmin可以做到在mysql终端无需真正登录进去就可stop mysql server

[root@localhost bin]# ./mysqladmin -uroot -p1111aaA_ -S /tmp/mysql.sock3305 shutdown
mysqladmin: [Warning] Using a password on the command line interface can be insecure.

在部署mysql的服务器上使用,不需要密码 方法3、./support-files/mysql.server stop
使用file命令查看下

[root@localhost ~]# file /home/mysql5.7/mysql-5.7.33-linux-glibc2.12-x86_64/support-files/mysql.server
/home/mysql5.7/mysql-5.7.33-linux-glibc2.12-x86_64/support-files/mysql.server: POSIX shell script, ASCII text executable

mysql.server 是一个 shell script。那么我们查看一下它:

....'stop')# Stop daemon. We use a signal here to avoid having to know the# root password.if test -s "$mysqld_pid_file_path"then# signal mysqld_safe that it needs to stoptouch "$mysqld_pid_file_path.shutdown"mysqld_pid=`cat "$mysqld_pid_file_path"`if (kill -0 $mysqld_pid 2>/dev/null)thenecho $echo_n "Shutting down MySQL"kill $mysqld_pid# mysqld should remove the pid file when it exits, so wait for it.wait_for_pid removed "$mysqld_pid" "$mysqld_pid_file_path"; return_value=$?elselog_failure_msg "MySQL server process #$mysqld_pid is not running!"rm "$mysqld_pid_file_path"fi# Delete lock for RedHat / SuSEif test -f "$lock_file_path"thenrm -f "$lock_file_path"fiexit $return_valueelselog_failure_msg "MySQL server PID file could not be found!"fi;;
...

可见,mysql.server stop使用kill -0 pid 来实现关闭的。
利用了linux中的一个信号机制。kill -9 表示强制关闭。若使用的是kill -0 表示发生一个信号给进程,若应用程序中有负责接收处理信号的话,就会走正常关闭的代码流程。故linux的kill -0 命令在mysql中是一个正常的安全关闭。可以做到不需要密码也可以把mysql关闭。

请使用kill -0 pid 来关闭mysql而不是kill -9 pid

最后编辑于:2024-10-27 16:14:32


喜欢的朋友记得点赞、收藏、关注哦!!!


http://www.ppmy.cn/devtools/133905.html

相关文章

分享 | 中望3D 2025发布会提及的工业数字化MBD是什么?

本文为CAD芯智库原创,未经允许请勿复制、转载! 原文转自:www.xwzsoft.com/h-nd-487.html 今年中望CAD/中望3D 2025版新品发布会上,中望产品规划与GTM中心总监胡其登先生的专题演讲——《基于模型的CAx一体化研发管理平台&#xff…

【go从零单排】HTTP客户端和服务端

🌈Don’t worry , just coding! 内耗与overthinking只会削弱你的精力,虚度你的光阴,每天迈出一小步,回头时发现已经走了很远。 📗概念 在 Go 语言中,net/http 包提供了强大的 HTTP 客户端和服务器功能。 &…

植物大战僵尸杂交版v2.6.1最新版本(附下载链接)

B站游戏作者潜艇伟伟迷于11月3日更新了植物大战僵尸杂交版2.6.1版本!!!,有b站账户的记得要给作者三连关注一下呀! 不多废话下载链接放上: 夸克网盘链接:https://pan.quark.cn/s/279e7ed9f878 新…

WebSocket和HTTP协议的性能比较与选择

WebSocket和HTTP协议的性能比较与选择 引言: 在web应用开发中,无论是实时聊天应用、多人在线游戏还是实时数据传输,网络连接的稳定性和传输效率都是关键要素之一。目前,WebSocket和HTTP是两种常用的网络传输协议,它们…

使用HTML、CSS和JavaScript创建动态圣诞树

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 ✨特色专栏&#xff1a…

(免费领源码)java#SSM#mysql高校就业数据可视化管理系统的设计与实现81461-计算机毕设 原创

摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对高校就业管理等问题,对高校就业…

2019年下半年试题二:论软件系统架构评估及其应用

论文库链接:系统架构设计师论文 论文题目 对于软件系统,尤其是大规模复杂软件系统而言,软件系统架构对于确保最终系统的质量具有十分重要的意义。在系统架构设计结束后,为保证架构设计的合理性、完整性和针对性,保证系…

探索光耦:达林顿光耦与晶体管光耦的区别

在现代电子技术中,光耦是一种广泛应用的电子元件,它通过光信号实现电气隔离,保证信号传输的安全性和完整性。光耦合器的种类繁多,本文将重点探讨两种常见类型:达林顿光耦和晶体管光耦的区别。 结构的差异 晶体管光耦…