我正在尝试在我自己的计算机上运行本地 mysql 服务器。我丢失了最初设置的密码。当我尝试连接到 mysql 时,出现以下错误:
ERROR 2002 (HY000): 无法通过 socket '/var/run/mysqld/mysqld.sock' 连接到本地 MySQL 服务器 (2)
因此,我尝试了这些步骤来重置我的 MySQL 密码,但该行
mysql -u 根 mysql
返回相同的错误消息:
ERROR 2002 (HY000): 无法通过 socket '/var/run/mysqld/mysqld.sock' 连接到本地 MySQL 服务器 (2)
运行命令时
mysqladmin -u root -p status 我收到以下消息:错误:'无法通过套接字'/var/run/mysqld/mysqld.sock'连接到本地MySQL服务器(2)'
检查 mysqld 是否正在运行以及套接字:'/var/run/mysqld/mysqld.sock' 是否存在!
我一直在检查,提到的文件(/var/run/mysqld/mysqld.sock)实际上并不存在。我不确定是什么原因造成的。
我在网上尝试了几个解决方案,包括这个、这个、这个和这个,但是这些解决方案都不适合我。我想补充一点,我的机器上安装了 mysql-server。
任何帮助表示赞赏。如果以上陈述有任何混淆,请接受我的歉意。我试图尽可能多地解释正在发生的事情,但我是一个初学者,我对那里发生的事情一无所知。
1)使用以下命令停止 mysql 恶魔进程:
sudo /etc/init.d/mysql stop
Run Code Online (Sandbox Code Playgroud)
2) 使用此命令的 --skip-grant-tables 选项启动 mysqld 恶魔进程
sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
Run Code Online (Sandbox Code Playgroud)
因为此时您没有检查用户权限,所以禁用网络是最安全的。在 Dapper 中,/usr/bin/mysqld... 不起作用。然而,mysqld --skip-grant-tables 做到了。
1)使用此命令启动mysql客户端进程
mysql -u root
Run Code Online (Sandbox Code Playgroud)
2)从mysql提示符执行此命令能够更改任何密码
FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)
3)然后重置/更新您的密码
SET PASSWORD FOR root@'localhost' = PASSWORD('password');
Run Code Online (Sandbox Code Playgroud)
4) 如果你有一个可以从任何地方连接的 mysql root 帐户,你还应该这样做:
UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
Run Code Online (Sandbox Code Playgroud)
一旦收到指示查询成功的消息(受影响的一行或多行),刷新权限:
FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)
然后停止 mysqld 进程并以经典方式重新启动它:
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start
Run Code Online (Sandbox Code Playgroud)
这是从https://help.ubuntu.com/community/MysqlPasswordReset借用的,您还可以检查另一种重置 mysql 密码的方法。
| 归档时间: |
|
| 查看次数: |
14372 次 |
| 最近记录: |