【MySQL运维技术分享】使用systemd管理MySQL(结合mysql_config_editor)
一、前言
如果使用二进制方式部署的 MySQL ,通常是通过mysqld_safe和mysqladmin这2个自带工具进行服务的启动和关闭操作,为了实现标准化管理,也可以将MySQL注册为系统服务实现开机自启等
二、配置方式
1、创建 mysql.service 服务文件
在/etc/systemd/system/下创建 MySQL 服务文件,之所以将自定义的 mysql.service 文件放在 /etc/systemd/system/ 目录下是因为该目录是专门存放自定义服务单元文件的标准位置。自定义的服务文件放在该目录下,系统更新时不会被覆盖。而且/etc/systemd/system/ 目录中的服务文件优先级最高,能够覆盖其他目录中的相同服务文件。
文件内如如下,需要注意将mysqld_safe、mysqladmin、pid等文件的路径修改为实际路径,注册user和group的设置,要和启动脚本的属主属组保持一致,比如oracle的dbstart脚本为oracle:oinstall,那么这里就要改为user=oracle,group=oinstall,否则启动脚本无法正常启动服务
vi /etc/systemd/system/mysql.service [Unit] Description=MySQL Server After=network.target [Service] Type=forking ExecStart=/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my3306.cnf ExecStop=/usr/local/mysql/bin/mysqladmin --login-path=/data/mysql3306/mysql_login shutdown PIDFile=/data/mysql3306/data/master.pid User=mysql Group=mysql [Install] WantedBy=multi-user.target
2、配置MySQL登录文件
在上面创建的服务文件中可以看到 ExecStop 中不是直接用明文传递的密码,而是通过文件读取的方式登录数据库进行关闭操作,这样更安全。而要实现这个效果则是通过MySQL自带的 mysql_config_editor 工具,通过该工具可以创建一个凭据文件,然后使用该文件就可以直接登录数据库了
创建凭据文件
mysql_config_editor set --login-path=/data/mysql3306/mysql_login --socket=/tmp/mysql3306.sock --user=root --password
打印凭据文件测试是否正常
mysql_config_editor print --login-path=/data/mysql3306/mysql_login
使用凭据登录测试是否正常
mysql --login-path=/data/mysql3306/mysql_login
3、注册系统服务
配置完成后如果mysql已经是运行状态,先手动关闭再使用脚本启动进行测试,如果启动后执行systemctl status mysql状态是正常的就代表配置成功
systemctl daemon-reload systemctl start mysql
评论