【发布时间】:2012-08-13 00:16:59
【问题描述】:
我的问题开始于我在安装 mysql 时无法再以 root 身份登录。我试图在没有打开密码的情况下运行 mysql ......但是每当我运行命令时
# mysqld_safe --skip-grant-tables &
我永远不会得到提示。我试图关注these instructions to recover the password。
屏幕是这样的:
root@jj-SFF-PC:/usr/bin# mysqld_safe --skip-grant-tables
120816 11:40:53 mysqld_safe Logging to syslog.
120816 11:40:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
而且我没有收到开始输入 SQL 命令以重置密码的提示。
当我按 CTRL + C 杀死它时,我收到以下消息:
error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'
Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!
如果我重试该命令并保留足够长的时间,我会收到以下一系列消息:
root@jj-SFF-PC:/run/mysqld# 120816 13:15:02 mysqld_safe Logging to syslog.
120816 13:15:02 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
120816 13:16:42 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
[1]+ Done mysqld_safe --skip-grant-tables
root@jj-SFF-PC:/run/mysqld#
但是,如果我尝试以 root 身份登录:
# mysql -u root
我收到以下错误消息:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
我检查了/var/run/mysqld/mysqld.sock 文件不存在。文件夹有,但文件没有。
另外,我不知道这是否有帮助,但我跑了find / -name mysqld,它想出了:
/var/run/mysqld - folder
/usr/sbin/mysqld - file
/run/mysqld - folder
我是 Linux 和 MySQL 的新手,所以我不知道这是否正常。但我将这些信息包括在内以防万一。
我终于决定卸载并重新安装mysql。
apt-get remove mysql-server
apt-get remove mysql-client
apt-get remove mysql-common
apt-get remove phpmyadmin
按照与上述相同的顺序再次重新安装所有软件包后,在 phpmyadmin 安装期间,我得到了同样的错误:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
所以我再次尝试卸载/重新安装。这一次,在我卸载了这些包之后,我还手动将所有mysql文件和目录在各自的位置重命名为mysql.bad。
/var/lib/mysql
/var/lib/mysql/mysql
/var/log/mysql
/usr/lib/perl5/DBD/mysql
/usr/lib/perl5/auto/DBD/mysql
/usr/lib/mysql
/usr/bin/mysql
/usr/share/mysql
/usr/share/dbconfig-common/internal/mysql
/etc/init.d/mysql
/etc/apparmor.d/abstractions/mysql
/etc/mysql
然后我再次尝试重新安装mysql-server 和mysql-client。但我注意到它不会提示我输入密码。不是应该要求管理员密码吗?
【问题讨论】:
-
我遇到了同样的问题。我刚才解决了。 stackoverflow.com/questions/18150858/…
-
只需要重启服务器,然后重启mysql服务即可解决
-
@Anto 这不是重复的。这个缺少
/var/run/mysqld/mysqld.sock。你链接的问题有那个文件。 -
这里或我能找到的其他任何地方的答案都没有解决我的问题。因为这是一个新项目,所以我切换到 PostgreSQL 并且它可以正常工作! :-)