无法连接到本地 MySQL 服务器并丢失了 root 密码

Posted

技术标签:

【中文标题】无法连接到本地 MySQL 服务器并丢失了 root 密码【英文标题】:Can't connect to local MySQL server and lost root password 【发布时间】:2021-08-17 04:55:12 【问题描述】:

我无法连接到 mysql 服务器,所以我停止了 MySQL:

sudo /etc/init.d/mysql stop
# Stopping mysql (via systemctl): mysql.service.

然后,用 root 登录并再次启动 MySQL:

sudo -s
mysqld_safe --skip-grant-tables &
# .... mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
# 2021-05-29T03:01:11.967630Z mysqld_safe mysqld from pid file /var/lib/mysql...... ended

在那之后我执行了:

mysqld_safe --skip-grant-tables
# Logging to '/var/lib/mysql/......err'.
# 2021-05-29T03:03:40.507375Z mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
# 2021-05-29T03:03:40.834556Z mysqld_safe mysqld from pid file /var/lib/mysql/...... ended
# [1]+  Done                    mysqld_safe --skip-grant-tables

最后我执行了:

mkdir -p /var/run/mysqld
chown mysql:mysql /var/run/mysqld
mysql -u root
# ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

我也忘记了我的 root 密码。

【问题讨论】:

这能回答你的问题吗? MySQL: How to reset or change the MySQL root password? 【参考方案1】:

H,欢迎。

您不需要拨打mysqld_safe 两次,只需拨打一次。参数--skip-grant-tables 使任何与 MySQL 的本地连接都无需​​密码即可发生。

消息:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

意味着您的服务器没有监听位于 /var/run/mysqld/mysqld.sock 的默认 unix 套接字。

杀死每个 mysqld 实例:

ps -ef | grep mysql
# copy every id and...
kill <id>

在 MySQL 日志中寻找任何线索,可能在 /var/log/mysql/error.log,然后尝试从 mysqld_start --skip-grant-tables 开始。

【讨论】:

我执行“ps -ef | grep mysql”,输出为“username 3720 3709 0 05:29 pts/0 00:00:00 grep --color=auto mysql”我应该怎么做做什么? 没有mysqld 在运行。像你已经做的那样开始它并观察日志。

以上是关于无法连接到本地 MySQL 服务器并丢失了 root 密码的主要内容,如果未能解决你的问题,请参考以下文章

在 Docker 中安装 MySQL 失败并显示错误消息“无法通过套接字连接到本地 MySQL 服务器”

在 Docker 中安装 MySQL 失败并显示错误消息“无法通过套接字连接到本地 MySQL 服务器”

Mysql 无法通过 Amazon EC2 上的套接字连接到本地服务器

无法从本地主机连接到 Docker 中的 MySQL(Docker for Mac beta)

无法通过套接字 '/tmp/mysql.sock' 连接到本地 MySQL 服务器 (2)

无法通过套接字 '/var/mysql/mysql.sock' 连接到本地 MySQL 服务器 (38)