问题:
在没有修改配置时,MySQL启动正常;
错1:修改配置后MySQL启动不了,报错:
[root@localhost mysql]# service mysql restart
Starting MySQL...[ERROR] The server quit without updating PID file (/usr/local/mysql/data/mysqld.pid).
错2:输入命令mysql,报错can’t connect to local mysql server through socket ‘/var/run/mysqld/mysqld.sock’。
连接MySql报错“can't connect to local mysql server through socket '/var/run/mysqld/mysqld.sock'”
分析:
错1原因:是这个存放mysqld.pid的目录,所属者 不是mysql(服务),也就是说 mysql服务没有“读写” 这个目录内容的权限;
例如:
看下边的文件,文件位置是“/data/dmain”,没有放在安装mysql的目录下,所以现在的目录文件 “所有者” 是root ,
则说明“mysql服务”队这些文件没有操作权限,而在mysql服务重启时,需要读这里的文件进行读写,所有在操作文件读写的过程中就会出现问题,只有将这些文件的所有者修改为mysql才能将文件读写的权限归属到mysql服务下;这样才能保证MySQL服务 重启时 必要文件读写的功能。
需要修改目录的所有者(相当于 ‘’设置权限‘’)下图示:(也就是将文件的所有者 改为 mysql)
具体操作命令:
其实就一句: chown -R mysql:mysql 【mysql相应的data目录位置】
执行结果为:
修改完成后,重启mysql服务成功;
提示:
1、【mysql相应的data目录位置】 这个目录位置,是根据mysql相关配置文件 my.cnf 中设置的如:
datadir=/data/dmain
socket=/data/dmain/mysqld.sock
附加:摘录网上各位大佬的“奇淫绝技”:
看见这个不要惊慌,先把刚才修改的配置注释掉,看是不是配置有误!大部分是手误造成。
如果不行,再尝试一下方法:
1.可能是/usr/local/MySQL/data/mysqld.pid文件没有写的权限
解决方法 :
给予权限,执行
“chown -R mysql:mysql /usr/local/MySQL/data/”
“chmod -R 755 /usr/local/mysql/data”
然后重新启动mysqld!
2.可能进程里已经存在mysql进程
解决方法:
用命令“ps -ef|grep mysqld”查看是否有mysqld进程,
如果有使用“kill -9 进程号”杀死,然后重新启动mysqld!
3.可能是第二次在机器上安装mysql,有残余数据影响了服务的启动。
解决方法:
去mysql的数据目录/data看看,如果存在mysql-bin.index,就赶快把它删除掉吧,它就是罪魁祸首了。
4.mysql在启动时没有指定配置文件时会使用/etc/my.cnf配置文件,请打开这个文件查看在[mysqld]节下有没有指定数据目录(datadir)。
解决方法:
请在[mysqld]下设置这一行:datadir = /usr/local/mysql/data
5.skip-federated字段问题
解决方法:
检查一下/etc/my.cnf文件中有没有没被注释掉的skip-federated字段,如果有就立即注释掉吧。
6.错误日志目录不存在
解决方法:
使用“chown” “chmod”命令赋予mysql所有者及权限
7.selinux惹的祸,如果是centos系统,默认会开启selinux
解决方法:
关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器试试。
####################################################################################
遇到的问题---mysql 启动错误-server PID file could not be found
2013年11月14日 17:46:18 张小凡vip 阅读数 72509
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/q383965374/article/details/16120355
[root@centos var]# service mysqld stop
MySQL manager or server PID file could not be found! [FAILED]
解决办法:
首先查看一下进程
[root@irxpert-test/]# ps aux |grep mysq*
root 10274 0.0 0.0 68160 1336 ? S 13:43 0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/lib/mysql/irxpert-test.pid
mysql 10353 0.0 1.0 344360 39464 ? Sl 13:43 0:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/lib/mysql/irxpert-test.err --pid-file=/var/lib/mysql/irxpert-test.pid
root 11884 0.0 0.0 63384 760 pts/1 S+ 15:44 0:00 grep mysq*
如果看到上面的内容,那说明,Mysql的进程卡死了,这时用就要把这些卡死的进程都关闭
[root@centos mysql]# kill10274
[root@centos mysql]# kill10353
启动Mysql就ok了
[root@centos mysql]# service mysql start
Starting MySQL. [ OK ]
如果杀掉进程之后还是不行。
具体要看报错信息 如果没有指定日志路径 一般在是 /data/mysql 中的localhost.err文件中可以看到信息。
如果线程中无死进程 可以先看 service mysql status 看下状态 根据提示删掉多余的东西
进入/data/mysql 也就是你的数据库目录 把多余的删除,包括localhost.err 和其他 index等东西
如果 多重启几次 一直执行 service mysql start 就可以重启成功了
#################################################################################
我碰到的同样问题。。。。原来是home目录下 内存满了。。删了几个文件后重新启动 ok
#################################################################################
连接MySql报错“can't connect to local mysql server through socket '/var/run/mysqld/mysqld.sock'”
情况:
我是在ubuntu上安装mysql的,系统提示我安装mysql-client。我安装之后,输入命令mysql,报错can’t connect to local mysql server through socket ‘/var/run/mysqld/mysqld.sock’。
原因:还需要安装mysql-server
解决办法:apt-get install mysql-server
。
安装完之后,会提示设置密码,用户名默认root。
使用mysql登录命令:mysql -uroot -pXXXXXX
(root为用户名,xxx为密码)即可登录成功
########################################################################################
mysql Can't connect to local MySQL server through socket 问题解决
系统环境:Mac。
操作过程:使用mysql -u{用户名} -p{密码} 失败。
错误信息:
mysql: [Warning] Using a password on the command line interface can be insecure. ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
原因分析:
1.可能mysql服务停止了。
mysqld_safe是一个shell 脚本,会调用mysqld启动mysql服务器,并监听服务器。
如果mysqld进程异常终止,mysqld_safe将自动重启mysqld。
运行
/usr/local/mysql/bin/mysqld_safe &
&为后台启动。
后再次使用:
mysql -u{用户名} -p{密码}
成功!
分类: mysql