MySQL守护进程无法启动 - centos 6

时间:2013-12-01 09:40:06

标签: php mysql phpmyadmin centos6

编辑:查看勾选的答案评论以解决您的问题。

每当我尝试启动SQLD服务时,我都会让MySQL守护进程无法启动。我实际上试图通过执行以下操作来“启动”服务:

service mysqld start

另外

当我输入:mysql

我明白了:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

我知道该目录中应该有一个mysql.sock文件,所以我创建了一个。但该文件只是自动删除其自我,我继续得到错误2002。

由于错误,我也无法登录PHPMyAdmin。我可以访问phpmyadmin页面但登录时我得到:#2002 Cannot log in to the MySQL server

编辑:

这是我的mysql.log文件:

131201 13:05:07 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
131201 13:18:18 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
131201 13:18:18 [Note] Plugin 'FEDERATED' is disabled.
/usr/libexec/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
131201 13:18:18 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
131201 13:18:18 InnoDB: The InnoDB memory heap is disabled
131201 13:18:18 InnoDB: Mutexes and rw_locks use GCC atomic builtins
131201 13:18:18 InnoDB: Compressed tables use zlib 1.2.3
131201 13:18:18 InnoDB: Using Linux native AIO
131201 13:18:18 InnoDB: Initializing buffer pool, size = 128.0M
131201 13:18:18 InnoDB: Completed initialization of buffer pool
131201 13:18:18  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.
131201 13:18:18 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

我运行了mysql_upgrade并获得了

Looking for 'mysql' as: mysql
Looking for 'mysqlcheck' as: mysqlcheck
FATAL ERROR: Upgrade failed

16 个答案:

答案 0 :(得分:18)

尝试重新启动apache sudo service httpd restart。为我工作。

答案 1 :(得分:17)

导致此错误的最可能原因是您的mysql服务器未运行。当您键入mysql时,您正在执行mysql客户端。

尝试:

# sudo service mysql start
# mysql

更新(在OP包含登录问题之后;取自以下评论):

  

谢谢,看到了你的日志。日志说的是mysql用户没有   适当的访问权限。我假设你的mysql用户是mysql(这可以   在/etc/my.cnf中验证,执行

     

chown -R mysql:mysql /var/lib/mysql

     

然后再次尝试启动mysqld

答案 2 :(得分:12)

运行这个:

chown -R mysql:mysql /var/lib/mysql

再试一次!

答案 3 :(得分:4)

您可能需要从根(/)分区释放一些空间。通过以下方式停止mysql进程:

/etc/init.d/mysql stop

通过命令从mySql中删除未使用的数据库:

rm -rf [Database-Directory]

/var/lib/mysql执行。现在如果你运行df -h,你可能会因为空间不足而感到困惑。要删除要使用的未使用数据库的目录,您需要使用当前目录/分区来终止进程。

停止mysql_safemysqld_safe,然后mysqld

ps -A

然后找到mysql的进程号(例如2234)。然后执行:

kill 2234

现在再次启动mysql:

/etc/init.d/mysql start

答案 4 :(得分:4)

 /etc/init.d/mysqld stop

  mysqld_safe --skip-grant-tables &

  mysql_upgrade

 /etc/init.d/mysqld stop

 /etc/init.d/mysqld start

答案 5 :(得分:3)

另一个适合我的提示。运行命令:

$ mysql_install_db

答案 6 :(得分:2)

  1. /etc/init.d/mysql stop
  2. chown -R mysql:mysql /var/lib/mysql
  3. mysql_install_db
  4. /etc/init.d/mysql start

  5. 这一切都救了我的MySQL服务器!

答案 7 :(得分:1)

尝试

netstat -a -t -n | grep 3306 

看到任何一个人听3306端口 然后杀了它

我有这个问题2天了。尝试在论坛上发布的解决方案我不小心碰到了我的日志出现此错误的情况

  

检查您是否还有其他mysqld进程

答案 8 :(得分:1)

我遇到了同样的问题。当我检查error.log时,我发现我的磁盘已满。

使用:

df -h 
命令行上的

。它会告诉你剩下多少空间。我满了。发现我的error.log文件是4.77GB。我下载了它然后将其删除。 然后我使用服务mysqld启动它工作。

答案 9 :(得分:1)

由于内存不足,您的数据库已关闭! 您可以编辑my.cnf base下面的文件来解决它

performance_schema_max_table_instances=200
table_definition_cache=200
table_open_cache=128

答案 10 :(得分:1)

对于将来会在这里的人,如果以上所有方法都不起作用,请查看my.cnf文件:

$ sudo gedit /etc/my.cnf

找到行开头:

bind-address=[an-IP-address]

检查等号后的IP地址是否正确。如果您甚至不知道IP是什么,只需使用localhost,那么您只能连接到同一主机内的MySQL。

如果你想远程连接到MySQL,你应该完全注释掉那条线,然后它会监听你需要的所有IP和端口,因为你将通过公共IPv4远程连接到它。

之后添加用户来访问您的数据库,例如:

mysql> GRANT ALL ON database_name.* TO user@xx.xxx.xx.xx IDENTIFIED BY 'your_password';

将xx.xx.xx.xx替换为笔记本电脑/台式机的本地IP地址,或者如果它是动态的,您可以通过以下方式添加它们: '192.168.0。%'作为动态C级或 '%'如果你想从任何地方连接(这不太安全)

此外,如果安装了防火墙,则应该打开防火墙上的端口;

例如在Ubuntu中:

sudo ufw allow 3306/tcp
sudo service ufw restart

现在,通过以下方式检查服务是否可以启动:

$ sudo service mysqld start

答案 11 :(得分:0)

我刚刚遇到这个错误。我无法远程连接到我的mysql服务器。我尝试使用服务mysqld restart重新启动mysql服务器(我使用root)。它停了但没有重新开始。结果我的记忆已经满了。清除了几GB并且工作正常。

答案 12 :(得分:0)

这可能是许可问题,

请以root用户身份尝试以下命令/etc/init.d/mysqld start

答案 13 :(得分:0)

如果您在AIM Linux Amazon EC2中使用yum。 为了安全起见,请备份目录/ var / lib / mysql

sudo yum reinstall -y mysql55-server

sudo service mysqld start

答案 14 :(得分:0)

此处参考2.10.2.1 Troubleshooting Problems Starting the MySQL Server

1.找到数据目录,它是在my.cnf中配置的。

[mysqld]
datadir=/var/lib/mysql

2。检查错误文件,它会记录有关mysql服务器启动失败原因的错误消息。 err文件的名称与您的主机名相关。

cd /var/lib/mysql
ll
tail (hostname).err

3.如果您发现了以下消息:

InnoDB: Error: log file ./ib_logfile0 is of different size 0 33554432 bytes
InnoDB: than specified in the .cnf file 0 5242880 bytes!
170513 14:25:22 [ERROR] Plugin 'InnoDB' init function returned error.
170513 14:25:22 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
170513 14:25:22 [ERROR] Unknown/unsupported storage engine: InnoDB
170513 14:25:22 [ERROR] Aborting

然后

  

删除ib_logfile0和ib_logfile1

,然后,

/etc/init.d/mysqld start

答案 15 :(得分:0)

RE:MySQL守护进程无法启动 - centos 6 / RHEL 6

  1. 百胜安装MySQL
  2. /etc/init.d/mysqld start MySQL守护程序无法启动。 启动mysqld:[FAILED]

  3. 查看日志:/var/log/mysqld.log

  4. 您可能会收到此错误:[错误]无法打开mysql.plugin表。请运行mysql_upgrade来创建它。
  5. 适用于我的解决方案正在运行:

    1. $ mysql_install_db
    2. 如果这不能解决您的问题,请告诉我。