MySQL Tools 之 mysql.server 脚本运用--转发
2021/8/4 19:06:57
本文主要是介绍MySQL Tools 之 mysql.server 脚本运用--转发,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录
- 主要用法
- 自定义
- 1、添加basedir、datadir和config配置
- 2、指定mysqld的PID文件
- 3、注释解析默认参数文件方法
- 4、修改mysqld_safe启动时的参数文件
- 参考
正文
MySQL distributions on Unix and Unix-like system include a script named mysql.server, which starts the MySQL server using mysqld_safe. It can be used on systems such as Linux and Solaris that use System V-style run directories to start and stop system services. It is also used by the macOS Startup Item for MySQL.
mysql.server是官方针对Unix
和类Unix
系统二进制版本安装包当中包含的脚本,它是一个SHELL
脚本,被用来启动、查看和停止mysqld
进程服务。mysql.server其实上调用的是mysqld_safe
命令。
更详细的关于mysql.server的说明可以参考官方文档:https://dev.mysql.com/doc/refman/5.7/en/mysql-server.html
本文使用的MySQL版本为5.7.21
。
# mysqld -V mysqld Ver 5.7.21 for linux-glibc2.12 on x86_64 (MySQL Community Server (GPL))
- 如果使用
RPM
包的安装方式进行安装MySQL后,mysql.server这个脚本会被放在/etc/init.d/
下面,并且命名为mysqld
或者mysql
; - 如果是二进制包的安装方式,则mysql.server放在二进制安装目录下
support-files
的目录下面。
主要用法
- 1、启动
mysqld
服务
# mysql.server start
- 2、查看
mysqld
状态
# mysql.server status
- 3、停止
mysqld
服务
# mysql.server stop
- 4、重启
mysqld
服务
# mysql.server restart
- 5、平滑重启
mysqld
服务
# mysql.server reload回到顶部
自定义
mysql.server是一个SHELL
脚本,其中有一些选项在没有明确指定的时候是有默认值,比如basedir
默认路径为/usr/local/mysql
等。通常以二进制包进行安装的时候,有些路径需要自定义,否则mysql.server无法找到相应的路径,也就无法完成mysqld
进程服务的管理。
可以通过VIM
等编辑器对mysql.server脚本进行编辑与修改。
主要修改选项路径如下:
回到顶部1、添加basedir、datadir和config配置
大概在mysql.server脚本的43行处。
43 # If you change base dir, you must also change datadir. These may get 44 # overwritten by settings in the MySQL configuration files. 45 46 basedir= #二进制包安装的目录 47 datadir= #数据文件所在的目录 48 config= #此处为新增选项,配置需要使用的参数文件路径
此处可以修改为:
回到顶部basedir=/usr/local/mysql5.7
datadir=/data/mysql/data
config=/data/mysql/3306/my.cnf
2、指定mysqld的PID文件
61 # The following variables are only set for letting mysql.server find things. 62 63 # Set some defaults 64 mysqld_pid_file_path=
此处可以修改为:
61 # The following variables are only set for letting mysql.server find things. 62 63 # Set some defaults 64 mysqld_pid_file_path=/data/mysql/3306/mysql.pid回到顶部
3、注释解析默认参数文件方法
mysqld
启动时,默认寻找的参数文件路径如下:
/etc/my.cnf ---> /etc/mysql/my.cnf ---> /usr/local/mysql/etc/my.cnf ---> ~/.my.cnf
而mysql.server脚本默认会按照这个顺序去解析(通过my_print_defaults
这个命令实现)这几个参数文件,而为了防止mysql.server去解析这几个参数文件当中的参数选项,这时还是通过修改mysql.server脚本选项来实现,以便于使用自定义的参数文件。
大概在mysql.server脚本的240行处。
229 # 230 # Read defaults file from 'basedir'. If there is no defaults file there 231 # check if it's in the old (depricated) place (datadir) and read it from there 232 # 233 234 extra_args="" 235 if test -r "$basedir/my.cnf" 236 then 237 extra_args="-e $basedir/my.cnf" 238 fi 239 240 parse_server_arguments `$print_defaults $extra_args mysqld server mysql_server mysql.server`
可以注释240行,如下:
…………省略………… 237 extra_args="-e $basedir/my.cnf" 238 fi 239 240 # 注释这行 240 # parse_server_arguments `$print_defaults $extra_args mysqld server mysql_server mysql.server`
这样当通过mysql.server来启动mysqld
时就不会去解析默认路径下的参数文件
4、修改mysqld_safe启动时的参数文件
默认情况下mysqld_safe启动时是没有选项--defaults-file
指定参数的。可以添加这个选项指定所需的参数路径。
大概在mysql.server脚本的264行处。
264 # Give extra arguments to mysqld with the my.cnf file. This script 265 # may be overwritten at next upgrade. 266 $bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null & 267 wait_for_pid created "$!" "$mysqld_pid_file_path"; return_value=$? 268
可以添加conf
配置:
# 此处配置的参数文件为前面新增选项的参数文件 266 $bindir/mysqld_safe --defaults-file="$config" --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null &
至此,现在可以通过mysql.server来管理mysqld
进程服务的状态了,也可以放在/etc/init.d/
下当作系统服务进行管理,当然前提是这个脚本必须具备可执行权限。
参考
- **https://dev.mysql.com/doc/refman/5.7/en/mysql-server.html **
☆〖本人水平有限,文中如有错误还请留言批评指正!〗☆
这篇关于MySQL Tools 之 mysql.server 脚本运用--转发的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-16MySQL资料:新手入门教程
- 2024-11-16MySQL资料:新手入门教程
- 2024-11-15MySQL教程:初学者必备的MySQL数据库入门指南
- 2024-11-15MySQL教程:初学者必看的MySQL入门指南
- 2024-11-04部署MySQL集群项目实战:新手入门教程
- 2024-11-04如何部署MySQL集群资料:新手入门指南
- 2024-11-02MySQL集群项目实战:新手入门指南
- 2024-11-02初学者指南:部署MySQL集群资料
- 2024-11-01部署MySQL集群教程:新手入门指南
- 2024-11-01如何部署MySQL集群:新手入门教程