编辑:查看勾选的答案评论以解决您的问题.
每当我尝试启动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
hexicle.. 19
尝试重启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
重新开始.
您可能需要从根(/)分区释放一些空间。通过以下方式停止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
运行这个:
chown -R mysql:mysql /var/lib/mysql
然后再试一次!
/etc/init.d/mysqld stop mysqld_safe --skip-grant-tables & mysql_upgrade /etc/init.d/mysqld stop /etc/init.d/mysqld start
尝试重启apache sudo service httpd restart
.为我工作.