通用二进制部署mysql5.7.17时的报错整理
报错1:
# /etc/init.d/mysql start
Starting MySQL.The server quit without updating PID file (/usr/local/mysql/data//iZ8vb0ywcounjc3oh3rv2jZ.pid). [FAILED]
解决:显示pid文件的一般是属主属组权限的问题,赋予数据目录权限
# chown -R mysql.mysql /usr/local/mysql
报错2:
# /etc/init.d/mysql start
Starting MySQL.2020-02-15T02:22:28.043091Z mysqld_safe error:
log-error set to '/usr/local/mysql/data//localhost.localdomain.err', however file don't exists. Create writable for user 'mysql'.
The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid).
【还出现过路径是这样的错误/usr/local/mysql[失败]localhost.localdomain.pid;也是属主属组的问题。给权限就ok了】
出现日志和权限的问题,就是没有该日志,pid文件目录的属组属主的问题
创建该日志,赋予该目录属主属组即可解决
查看更详细的错误信息用:
systemctl status mysql或者journalctl -xe命令
分析:
报错日志中提到用户mysql。Pid文件和日志,
查看自己的服务,mysql用户已经存在了。存放日志的路径属组属主也是mysql,但是查看路径/usr/local/mysql/data下还有部分文件的属组属主不是mysql,执行 chown -R mysql.mysql /usr/local/mysql/data即可解决问题。
注意:
/usr/local/mysql/data是mysql的数据目录。
解释:
#查看data目录属组属主已经是mysql
查看data目录下的所有文件的属主属组,发现有部分文件的属组属主是root
给data目录下所有文件的属主属组改为mysql即可解决问题
排错的其他思路:
防火墙和selinux
在网上看到一篇文章说是与selinux有关,selinux的开启会导致部分服务安装失败。可以一试。
虚拟机的selinux默认是开启的
# setenforce 0【临时关闭selinux】
# /usr/sbin/sestatus -v
Current mode: permissive【此处表示临时关闭selinux】【如果是enforcing,表示开启】
有关mysql.sock和引擎的问题以下这位博主做了总结
个人认为存在疑问的思路【亲自测试,没有奏效的思路】
网上说关于pid报错,在配置文件里给pid添加路径
# vi /etc/init.d/mysql
(64行) mysqld_pid_file_path=/usr/local/mysql/data/
注释掉pid参数
# vi /etc/init.d/mysql
#mysqld_pid_file_path
解释:
因为pid文件是mysql运行时才会自动创建的文件。当mysql停止时pid文件也会自动消失。
个人觉得关于路径和注释pid参数的说法存在疑问
这是需要执行重启命令systemctl restart mysql俩次否则用 systemctl status mysql
查看mysql状态的时候还是会显示错误,(这时的错误是缓存的,多重启3次就好了)
中间还出现过ip丢失的问题,不过重启网卡systemctl restart network后就好了
启动mysql后会自动创建3个文件
-rw-rw---- 1 root root 6 2月 17 09:05 mysqld_safe.pid
-rw-r----- 1 mysql mysql 6 2月 17 09:05 localhost.localdomain.pid
-rw-r----- 1 mysql mysql 12582912 2月 17 09:05 ibtmp1