今天检查空间站点,到最后一步重启MySQL提示“MySQL server PID file could not be found! Starting MySQL...The server quit without updating PID file”。这啥情况,然后去搜集了下相关的材料,询问公司技术大佬,有过类似的操作,然后学习下如何操作和解决,在此记录防止下次遇到。

首先查找下是否存在进程,通过命令查看,如果有结束它然后重启。

ps -ef|grep mysqld
kill -9 进程号

这次是在这一步问题就解决了,其他后续的就先附上,以防万一。

一、可能是/usr/local/mysql/data/rekfan.pid文件没有写的权限
解决方法 :给予应有的权限,执行以下两段命令

chown -R mysql:mysql /var/data
chmod -R 755 /usr/local/mysql/data

然后重新启动mysqld!

二、可能是第二次在机器上安装mysql,有残余数据影响了服务的启动。
解决方法:去mysql的数据目录/data 看看,如果存在mysql-bin.index,把它删除掉,基本上就可以解决了。

三、mysql在启动时没有指定配置文件时会使用/etc/my.cnf配置文件,请打开这个文件查看在[mysqld]下有没有指定数据目录(datadir)。
解决方法:请在[mysqld]下设置这一行:datadir = /usr/local/mysql/data

四、skip-federated字段问题
解决方法:检查一下/etc/my.cnf文件中有没有没被注释掉的skip-federated字段,如果有就立即注释掉吧。

五、错误日志目录不存在
解决方法:使用“chown” “chmod”命令赋予mysql所有者及权限
“chown”语法格式:chown [可选项] user[:group] file...
使用权限:root
说明:
[可选项] :

  -c, --changes          like verbose but report only when a change is made (若该档案权限确实已经更改,才显示其更改动作)
  -f, --silent, --quiet  suppress most error messages  (若该档案权限无法被更改也不要显示错误讯息)
  -v, --verbose          output a diagnostic for every file processed(显示权限变更的详细资料)
      --no-preserve-root  do not treat '/' specially (the default)
      --preserve-root    fail to operate recursively on '/'
      --reference=RFILE  use RFILE's mode instead of MODE values
  -R, --recursive        change files and directories recursively (以递归的方式对目前目录下的所有档案与子目录进行相同的权限变更)
      --help        显示此帮助信息
      --version        显示版本信息

user : 新的文件拥有者的使用者
group : 新的文件拥有者的使用者群体(group)

范例:
1.设置文件 d.key、e.scrt的拥有者设为 users 群体的 tom

chown tom:users file d.key e.scrt

2.设置当前目录下与子目录下的所有文件的拥有者为 users 群体的 marital

chown -R marital:users  *

“chmod”语法格式: chmod [可选项] <file...>

可选项:同上文chown

mode :权限设定字串,详细格式如下:
[ugoa...][[+-=][rwxX]...][,...],其中
[ugoa...]
u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示所有(包含上面三者)。
[+-=]
+ 表示增加权限,- 表示取消权限,= 表示唯一设定权限。
[rwxX]
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
file...    文件列表(单个或者多个文件、文件夹)

范例:
1.设置所有用户可读取文件 a.conf
chmod ugo+r a.shchmod a+r a.conf
2.设置 c.sh 只有 拥有者可以读写及执行

chmod u+rwx c.sh

3.设置文件 a.conf 与 b.xml 权限为拥有者与其所属同一个群组 可读写,其它组可读不可写

chmod a+r,ug+w,o-w a.conf b.xml

4.设置当前目录下的所有档案与子目录皆设为任何人可读写

chmod -R a+rw *

六、selinux的问题,如果是centos系统,默认会开启selinux
解决方法:关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器试试

最后修改:2022 年 11 月 24 日
如果觉得我的文章对你有用,请随意赞赏