我的问题开始于我无法以root用户身份登录mysql安装。我试图在不打开密码的情况下运行mysql …但是每当我运行命令时
# mysqld_safe --skip-grant-tables &
我永远也回不了提示。我试图按照以下说明恢复密码。
屏幕如下所示:
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
再次。但是我注意到它不会提示我输入密码。它不是应该要求管理员密码吗?
要在系统上查找所有套接字文件,请运行:
sudo find / -type s
Mysql服务器系统在以下位置打开了套接字 /var/lib/mysql/mysql.sock
找到套接字所在的位置后,将其添加或编辑到/etc/my.cnf文件中,并带有套接字文件的路径:
socket=/var/lib/mysql/mysql.sock
有时,启动命令行可执行文件的系统启动脚本会指定一个标志--socket=path
。此标志可能会覆盖my.cnf位置,这将导致在my.cnf文件指示应在的位置找不到套接字。然后,当您尝试运行mysql命令行客户端时,它将读取my.cnf来查找套接字,但是由于它与服务器创建位置不同,因此找不到该套接字。因此,除非您关心套接字所在的位置,否则只需更改my.cnf使其匹配即可。
然后,停止mysqld进程。您的操作方式因系统而异。
如果您是Linux系统的超级用户,如果您不知道Mysql设置使用的特定方法,请尝试以下方法之一:
service mysqld stop
/etc/init.d/mysqld stop
mysqladmin -u root -p shutdown
pkill -9 mysqld
pgrep mysql
或找到mysql的进程IDps aux | grep mysql | grep -v grep
4969
以kill -9 4969
完成此操作后,您可能想要在其中查找pid文件/var/run/mysqld/
并将其删除
确保套接字上的许可权允许运行mysqld的任何用户都可以对其进行读取/写入。一个简单的测试是将其打开以进行完全读/写,然后查看它是否仍然有效:
chmod 777 /var/run/mysqld/mysqld.sock
如果这样可以解决问题,则可以根据安全设置根据需要调整套接字的权限和所有权。
另外,运行mysqld进程的用户必须可以访问套接字所在的目录。
已尝试所有职位以获取解决方案。错误2002(HY000):无法通过套接字“/var/run/mysqld/mysqld.sock”(2)连接到本地MySQL服务器 无法通过套接字“/var/MySQL/MySQL.sock”(38)连接到本地MySQL服务器 在后续工作中又发现了一个问题..sudo:有效的uid不是0,安装的sudo是否是setuid root? 所以对于这篇试过的跟帖 有谁能给
我在Ubuntu ;12.04 LTS(Precise Pangolin)上安装了LAMP,然后在phpMyAdmin上设置root密码。我忘记了密码,现在无法登录。当我试图通过终端更改密码时,我得到: 错误2002(HY000):无法通过套接字“/var/run/mysqld/mysqld.sock”(2)连接到本地MySQL服务器 我该怎么解决这个?我无法打开灯,卸载或重新安装。
问题内容: 当在Django中连接到mysql数据库时,出现错误。 我确定mysql服务器正在运行。 /var/run/mysqld/mysqld.sock不存在。 当我运行时,我只会得到/tmp/mysql.sock和其他一些不相关的输出。 我添加到/etc/my.cnf。然后重新标记mysql,退出django shell,并连接到mysql数据库。我仍然遇到相同的错误。 我进行了很多搜索,但
当连接到Django中的mysql数据库时,我得到了错误。 > 我确信mysql server正在运行。 任何帮助都是可喜的。提前谢了。 我只是尝试了一些方法。而且管用。我是这样做的。 添加。重新启动mysql服务器。
大家晚上好, 我很绝望,因为我无法在Debian10上安装MariaDB。也有类似的Stackoverflow问题,但都没有帮助解决我的问题。 我试过的: 到目前为止没有错误。 导致: 输入根用户的当前密码(Enter表示无):错误2002(HY000):无法通过套接字“/var/run/mysqld/mysqld.sock”连接到本地MySQL服务器(2) systemmd错误 毫米波727
我(在Ubuntu13上)使用 但是在跑步之后 然后输入密码,就会出现错误 错误2002(HY000):无法通过套接字/var/run/mysqld/mysqld.sock连接到本地MySQL服务器(2) 请引导。。。