数据库重启错误解决方法

今天准备新建站点,到最后一步重启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 群体的 James
chown -R James:users  *

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

可选项:同上文chown

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

范例:

1.设置所有用户可读取文件 a.conf
chmod ugo+r a.sh 或 chmod 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后存盘退出重启机器试试

以上就是这次问题的总结了,希望没有用到的时候。
1 条评论
  • Tom

    Most of them are permission problems. My error is caused by the second kind.

    回复