>编辑:查看打勾的答案注释以解决您的问题。
每当我尝试启动 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
尝试重新启动 apache sudo service httpd restart
。为我工作。
此错误最可能的原因是您的 mysql 服务器未运行。 当您输入mysql
时,您正在执行 mysql 客户端。
尝试:
# sudo service mysql start
# mysql
更新(在OP在问题中包含日志之后;取自下面的评论(:
谢谢,看到你的日志。日志说 mysql 用户没有 适当的访问权限。我假设你的mysql用户是mysql(这可以 在
/etc/my.cnf
中验证,执行
chown -R mysql:mysql /var/lib/mysql
并尝试重新开始
mysqld
。
运行以下命令:
chown -R mysql:mysql /var/lib/mysql
再试一次!
您可能需要从根 (/( 分区释放一些空间。通过以下方式停止 mysql 进程:
/etc/init.d/mysql stop
通过以下命令从 mySql 中删除未使用的数据库:
rm -rf [Database-Directory]
在/var/lib/mysql
中执行它。现在,如果您运行df -h
,您可能会对仍然已满的空间感到困惑。要删除受影响的未使用的数据库目录,您需要杀死正在使用当前目录/分区的进程。
停止mysql_safe
或mysqld_safe
然后mysqld
:
ps -A
然后找到 mysql 的进程号(例如 2234(。然后执行:
kill 2234
现在重新开始 mysql:
/etc/init.d/mysql start
/etc/init.d/mysqld stop
mysqld_safe --skip-grant-tables & mysql_upgrade
/etc/init.d/mysqld stop
/etc/init.d/mysqld start
另一个对我有用的技巧。运行命令:
$ mysql_install_db
对于那些将来会在这里的人,如果上述所有方法都不起作用,请通过以下方式检查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
-
/etc/init.d/mysql stop
-
chown -R mysql:mysql /var/lib/mysql
-
mysql_install_db
-
/etc/init.d/mysql start
所有这些都拯救了我的MySQL服务器!
尝试
netstat -a -t -n | grep 3306
查看任何人侦听 3306 端口然后杀死它
我遇到了这个问题 2 天。尝试论坛上发布的解决方案 我不小心遇到了我的日志收到此错误的情况
检查您是否还没有另一个 MySQL 进程
我遇到了同样的问题。当我检查错误时.log我发现我的磁盘已满。
用:
df -h
它会告诉你还剩下多少空间。 我的已经满了。 发现我的错误.log 文件是 4.77GB。我下载了它,然后删除了它。然后我使用服务 mysqld 启动并且它起作用了。
如果您在 AIM Linux Amazon EC2 中使用 yum。为了安全起见,请完成目录/var/lib/mysql 的备份
sudo yum reinstall -y mysql55-server
sudo service mysqld start
由于内存不足,您的数据库已关闭!您可以编辑下图下面的文件 my.cnf base 以解决它
performance_schema_max_table_instances=200
table_definition_cache=200
table_open_cache=128
我刚刚遇到了这个错误。我无法远程连接到我的 mysql 服务器。我尝试使用服务mysqld restart
重新启动mysql服务器(我使用了root(。它停止了,但没有再次开始。原来我的记忆已经满了。清除了几个GB,它工作正常。
这可能是权限问题,
请以 root 用户身份/etc/init.d/mysqld start
尝试以下命令。
在此处参考 2.10.2.1 解决启动 MySQL 服务器的问题。
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
RE:MySQL 守护程序无法启动 - centos 6/RHEL 6
- 百胜安装MySQL /
etc/init.d/mysqld startMySQL 守护程序无法启动。启动 mysqld: [失败]
查看日志:/var/log/mysqld.log
- 您可能会收到此错误:[错误] 无法打开 mysql.plugin 表。请运行mysql_upgrade来创建它。
对我有用的解决方案是运行这个:
- $ mysql_install_db
如果这不能解决您的问题,请告诉我。
我的是将以下行添加到/etc/my.cnf
innodb_force_recovery=4
然后sudo service mysqld start
像魅力一样工作