各位小伙伴今天与大家分享一个mysql数据库非常重要的话题——启动、关闭、重启linux下mysql数据库的多种方式。众所周知mysql作为一款广泛使用的开源关系性数据库管理系统,已经成为了许多企业和个人在存储和管理数据时的首选工具。然而,正确地启动或者关闭mysql对于确保系统的稳定运行、数据的完整性和安全性至关重要。
启动、关闭、重启mysql看似简单,但实际上涉及到许多细节和注意事项。不同的操作系统、配置和环境可能需要采用不同的方法来启动、关闭、重启mysql服务。因此,了解并掌握多种方法对于数据库管理员和开发者来说是至关重要的。
在这篇文章中,将探讨多种启动、关闭、重启mysql的方法,并解释每种方法的适用场景和注意事项。通过这些方法的学习和实践,我们不仅能够更好地管理和维护数据库,还能够提高工作效率和减少潜在的风险。
目录
方式一:mysqld命令(在多实例环境中,指定对应实例参数文件就可以启动某个实例)
方式二:mysqld_safe命令(在多实例环境中,指定对应实例参数文件就可以启动某个实例)
方式三:写入linux服务进行启动(在多实例环境中,通过不同的脚本定义不同的mysql_server就可以启动某个实例)
方式一:mysqladmin命令(在多实例环境中,指定对应实例socket文件就可以关闭某个实例)
方式二:shutdown命令(8.0版本新增。8.0只新增关闭和重启命令,没有启动的命令)
方式三:写入linux服务进行关闭(在多实例环境中,通过不同的脚本定义不同的mysql_server就可以关闭某个实例)
方式二:写入linux服务进行重启(在多实例环境中,通过不同的脚本定义不同的mysql_server就可以重启某个实例)
1、mysql启动的几种方式
mysql数据库启动的第一步同oracle数据库一样都是先读取参数文件的内容,大家都知道oracle数据库启动的第一步(nomount状态)就会在$oracle_home/dbs目录下读取参数文件,并且数据库的设置、配置、优化都是在参数文件中完成的。读取参数文件会按照spfile<sid>.ora --> spfile.ora --> init<sid>.ora(同pfile.ora)的顺序依次寻找,如果按照顺序都没有找到参数文件,那么启动就会报错,当然也可以在启动时指定自定义的参数文件完成数据库的启动【oracle启动时怎么指定自定义的参数文件这里我就不介绍了,有兴趣的小伙伴可以参考👉oracle篇—参数文件在11grac或12crac的启动位置介绍_rac参数文件位置-csdn博客👈】
在mysql数据库中,读取参数文件会按照/etc/my.cnf --> /etc/mysql/my.cnf --> /usr/local/mysql/etc/my.cnf --> ~/.my.cnf的顺序依次寻找(读取参数文件的顺序通过mysql --help | grep my.cnf命令查看) ,如果按照顺序都没有找到参数文件,那么启动也就会报错的,除非在启动时指定自定义的参数文件,就可以完成正常的数据库启动了。 如果指定的是自定义的参数文件,记录参数文件的位置是十分重要的,因为在mysql中没有确定参数文件的参数,所以通过ps -ef | grep mysql确定参数文件的位置尤为重要。
mysql启动时,涉及到以下关键的两个程序和一个函数。
- my_print_defaults 函数:这个函数用于读取 mysql 的配置文件(通常是 my.cnf),并输出配置文件中指定的参数,输出参数传递给parse_server_arguments。
- parse_server_arguments 程序:这个程序接收 my_print_defaults 函数输出的参数。它负责解析这些参数,并将它们分配给 mysql 启动过程中必要的关键变量,例如 --basedir(mysql安装目录)、--datadir(mysql数据存储目录)、--pid-file(mysql进程id文件路径)、--server-startup-timeout(mysql服务器启动超时时间)等。
- mysqld_safe 程序:这是 mysql 的安全启动程序,它负责启动和管理实际的数据库服务器进程 mysqld。在启动 mysqld 之前,mysqld_safe 会调用 parse_server_arguments 确保配置参数正确,并设置好运行环境。
这些组件共同协作,确保 mysql 在启动过程中能够正确读取配置、设置环境变量,并以安全和可靠的方式启动数据库服务器。
方式一:mysqld命令(在多实例环境中,指定对应实例参数文件就可以启动某个实例)
mysqld 是 mysql 数据库管理系统中的主要服务器进程 。它负责处理客户端的连接请求,并执行数据库操作,如查询、更新、插入和删除数据。mysqld 是多线程的,可以同时处理多个客户端连接,支持事务处理和多种存储引擎,如 innodb、myisam 等。它还负责管理数据库的日志和缓存,如事务日志和查询缓存,以优化数据库的性能和可靠性。
方式二:mysqld_safe命令(在多实例环境中,指定对应实例参数文件就可以启动某个实例)
mysqld_safe由shell脚本编写,是 mysql的守护进程启动工具 ,负责启动和监控mysqld进程,并在需要时进行自动重启。
当mysql的mysqld进程宕机时,mysqld_safe作为它的守护进程启动工具发挥着关键作用。它负责监控并自动重启mysqld,确保数据库的持续运行。如果仅mysqld进程宕机而mysqld_safe仍在运行,数据库可以继续工作。然而,如果mysqld_safe和mysqld两者同时宕机,数据库将停止运行。
方式三:写入linux服务进行启动(在多实例环境中,通过不同的脚本定义不同的mysql_server就可以启动某个实例)
通过将mysql的mysql.server脚本添加到linux系统服务中进行启动操作。
linux版本8之前服务的启动文件定义在/etc/init.d中,并且通过service命令进行管理。
到了linux版本8之后服务的启动文件定义在/usr/lib/systemd/system中了,通过systemctl命令进行管理。当然版本8之后的系统还兼容service命令,同样的/etc/init.d下,但是linux版本8建议使用systemctl命令替代。小提示💥:下面案例中的mysql数据库系统服务名为mysqld,这里是可以按照业务自定义命令的哦。
2、mysql关闭的几种方式
在mysql数据库中,读取参数文件会按照/etc/my.cnf --> /etc/mysql/my.cnf --> /usr/local/mysql/etc/my.cnf --> ~/.my.cnf的顺序依次寻找(读取参数文件的顺序通过mysql --help | grep my.cnf命令查看) ,如果按照顺序都没有找到参数文件,那么启动也就会报错的,除非在启动时指定自定义的参数文件,就可以完成正常的数据库启动了。 如果指定的是自定义的参数文件,那么关闭mysql前记录参数文件的位置是十分重要的,因为在mysql中没有确定参数文件的参数,所以通过ps -ef | grep mysql确定参数文件的位置尤为重要。关闭前记录参数文件位置,然后启动的时候指定即可。
方式一:mysqladmin命令(在多实例环境中,指定对应实例socket文件就可以关闭某个实例)
mysqladmin 是 mysql 数据库管理系统中一个重要的命令行工具,用于执行管理和监控数据库的各种任务。它可以通过执行不同的子命令来管理数据库服务器,如创建和删除数据库、管理用户权限、监控服务器状态等。
方式二:shutdown命令(8.0版本新增。8.0只新增关闭和重启命令,没有启动的命令)
此语句将停止mysql服务器。它需要shutdown特权。
shutdown控件提供具有相同功能的sql级接口。mysqladmin停工命令或mysql_shutdown()c api函数成功shutdown序列包括检查特权、验证参数和向客户端发送ok数据包。然后服务器就关闭了。
分两种情况进行模拟:
方式三:写入linux服务进行关闭(在多实例环境中,通过不同的脚本定义不同的mysql_server就可以关闭某个实例)
通过将mysql的mysql.server脚本添加到linux系统服务中进行关闭操作。添加过程参考mysql启动方式的方式三即可。
3、mysql重启方式(8.0版本新增)
在mysql数据库中,读取参数文件会按照/etc/my.cnf --> /etc/mysql/my.cnf --> /usr/local/mysql/etc/my.cnf --> ~/.my.cnf的顺序依次寻找(读取参数文件的顺序通过mysql --help | grep my.cnf命令查看) ,如果按照顺序都没有找到参数文件,那么启动也就会报错的,除非在启动时指定自定义的参数文件,就可以完成正常的数据库启动了。 如果指定的是自定义的参数文件,那么重启mysql前记录参数文件的位置可有可无,因为重启是先关闭然后再启动,启动时就会按照已经指定好的参数文件进行启动了,可以通过ps -ef | grep mysql确定参数文件。
方式一:restart命令
mysql在8.0版本中引入restart命令,实现远程重启mysqld进程的功能。能够在不登录操做系统的状况下,执行重启操做,对于运管上来讲也是一个很棒的功能。mysql执行restart命令须要数据库帐号具有shutdown权限,而且mysqld必须通过mysqld_safe守护进程下启动的才能执行restart命令。
restart命令的原理是mysqld_safe检测mysqld退出时的返回值,若是16,则进行重启。bash shell以下。
分两种情况进行模拟:
方式二:写入linux服务进行重启(在多实例环境中,通过不同的脚本定义不同的mysql_server就可以重启某个实例)
通过将mysql的mysql.server脚本添加到linux系统服务中进行重启操作。添加过程参考mysql启动方式的方式三即可。
呼,终于写完了,这篇文章整合了linux下mysql数据库的启动、关闭、重启的多种方式,希望对各位小伙伴在以后的mysql运维工作中有借鉴意义!!!
发表评论