Mysql 具体的安装方法见
但是关于自启动部分需要多一些说明。
一、问题现象:
系统重启后,发现 mysqld 服务启动正常,但是依赖 mysql 数据库的应用程序 A 启动失败。
查看日志显示,程序 A 启动的时候链接数据库失败。
二、原因分析:
mysqld 服务是正常启动的。
此时手动重启程序 A,A 也正常运行。
结论:说明程序 A 启动的时候,mysqld 可能没有启动。
三、启动顺序
首先想到的就是调整 mysqld 服务的启动顺序,让它高过我的程序 A。
然而发现 / etc/init.d 路径下没有关于 mysqld 的启动脚本。
四、解决思路
按照链接指示安装的 mysqld 默认是自动启动的。
可以取消 mysqld 的自启动,然后写一个启动脚本确保它启动在程序 A 启动之前。
五、解决办法
1. 查看系统当前默认启动项目的方法,不再是 setup 之类的了。
- systemctl list-unit-files
执行此命令能查看当前系统的服务启动和服务状态。
结果显示如下:
- 1 ...
- 2 microcode.service enabled
- 3 mysql.service enabled
- 4 mysqld.service enabled
- 5 NetworkManager-dispatcher.service enabled
- 6 ...
2. 取消 mysqld 的自启动
- systemctl disable mysqld
执行该命令后再查看当前系统的服务状态:
- 1 ...
- 2 microcode.service enabled
- 3 mysqld.service disabled
- 4 NetworkManager-dispatcher.service enabled
- 5 ...
3. 自定义 / etc/rc.local
先执行 systemctl start mysqld
再执行 startA
问题解决。
来源: