无法连接到本地 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)