系统:centos7.6
数据库版本:mysql-5.7.27
运维原因:重启后,别人装的mysql数据库不知道如何启动或者启动失败
解决方案:
1、systemctl status mysql/mysqld
显示mysql/mysqld服务不存在
2、mysqld(尝试使用环境变量启动mysql)
报错:数据目录不存在
3、寻找mysql安装目录及配置文件
whereis mysql搜索mysql安装目录
查看/usr/local/、/home/中是否存在mysql目录
配置文件一般是 /etc/my.cnf
4、查看mysql配置文件是否正确
发现:数据目录明显错误,只能通过各种方法寻找数据目录了
5、修改后使用mysqld尝试启动mysql
服务启动卡住,并没有报错
6、没有办法,只得尝试重装来解决了
示例:Liunx下 源码编译安装 MySQL 5.7.27-CSDN博客
7、重装时发现上面给的安装过程service无法创建
cp support-files/mysql.server /etc/init.d/mysql
最后选择用systemctl来创建mysql启动项
vi /etc/systemd/system/mysql.service
加入mysqld路径
[Unit]
Description=MySQL Server
After=network.target
[Service]
ExecStart=/usr/local/mysql/bin/mysqld
User=mysql
Group=mysql
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target
8、使用systemctl start mysql尝试启动mysql
神奇的发现启动成功了
9、但是在使用mysql -u root -p连接时又报了pid问题,直接把我弄破防了
有两个可能,mysql没有正常启动或pid地址有问题,
之后我核查了mysql启动日志,发现其中mysql服务的pid与通过mysql -u root -p提示错误的pid不一致!
10、查看mysql配置文件,发现pid路径与mysql -u root -p提示错误的pid路径一致,但为了能够正常运行,我选择填入mysql启动日志出现的pid路径
正常启动
猜测:可能是版本原因,这个pid路径需要在编码安装mysql的时候就定下,后面即使用配置文件去限制也无法改变现状,反而会影响客户端登录。
这里给一个小知识(在安装或启动的时候我遇到了权限问题,通过给系统/mysql用户添加权限解决,具体参考实际安装路径):
chmod 777 /data/mysql/tmp/
chown -R mysql:mysql /usr/local/mysql/