我试图在MysqlPasswordReset之后重置根密码,但当我try 使用--skip grant tables启动服务器时,服务器不会启动

  • Ubuntu 16.04.1 LTS(GNU/Linux 4.4.0-59-generic x86_64)
  • mysql版本14.14发行版5.7.17,适用于Linux(x86_64)

服务器正在运行

$ mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

停止服务器

$ sudo /etc/init.d/mysql stop
[ ok ] Stopping mysql (via systemctl): mysql.service.

试着从跳过拨款表开始

sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
[1] 9856

无密码连接

$ mysql -u root
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
[1]+  Exit 1                  sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking

我还try 从mysql_-safe开始(error.log为空)

sudo mysqld_safe --skip-grant-tables
2017-02-01T16:33:31.382105Z mysqld_safe Logging to syslog.
2017-02-01T16:33:31.383942Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2017-02-01T16:33:31.386058Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2017-02-01T16:33:31.388009Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.

推荐答案

我发现mysql.当mysql服务停止并且mysqld_safe无法创建时,sock会被删除(我找不到原因),所以我的解决方案是备份sock文件夹并在启动mysqld_safe之前进行恢复

启动服务器

$ sudo service mysql start

转到袜子文件夹

$ cd /var/run

把袜子收起来

$ sudo cp -rp ./mysqld ./mysqld.bak

停止服务器

$ sudo service mysql stop

恢复袜子

$ sudo mv ./mysqld.bak ./mysqld

安全启动mysqld_

$ sudo mysqld_safe --skip-grant-tables --skip-networking &

Init mysql shell

mysql -u root

更改密码

FLUSH PRIVILEGES;

SET PASSWORD FOR [email protected]'localhost' = PASSWORD('my_new_password');

Mysql相关问答推荐

如何通过if语句对SQL查询进行排序

在 MySQL 中选择 COUNT of MAX

选择多列但仅按 1 列分组

MYSQL 或 Laravel Eloquent 如何从这个订单中统计细节

在 MySQL 中使用三个表进行计算

WHERE SQL 语句中的列顺序是否重要

是否可以从 .SQL 文件中计算表中的行数?

选择在同一天售出不同活动门票的收银员

如何根据特定条件从mysql数据库中选择查询

如何使用 sequelize 将复合主键放在连接表中?

结果差异(MySQL 5.7 vs MySQL 8.0)

Spring Boot:Jdbc javax.net.ssl.SSLException:在接收对等方的 close_notify 之前关闭入站

SQLite 插入 - 重复键更新 (UPSERT)

如何在 MySQL 8.0.11 中重置 root 密码?

Sequel Pro 和 MySQL 连接失败

如何在sequelize中定义多列的唯一索引

SELECT 列表不在 GROUP BY 子句中并且包含非聚合列 .... 与 sql_mode=only_full_group_by 不兼容

连接到 docker-compose mysql 容器会拒绝访问,但运行相同映像的 docker 不会

使用 mysql 处理非常大的数据

服务器时区值“AEST”无法识别或代表多个时区