【问题标题】:Update MySQL root password - Ubuntu [duplicate]更新 MySQL root 密码 - Ubuntu [重复]
【发布时间】:2020-03-04 12:19:54
【问题描述】:

我想从 I9O*Kez 更新我的 MySQL 密码 ---> SO123*

我执行这些

mysql -u root -pI9O*Kez

service mysql stop 
mysqld_safe --skip-grant-tables &
mysql -uroot

use mysql; 
delete from user where User='root';

CREATE USER 'root'@'%' IDENTIFIED BY 'SO123*';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'%';

我一直在得到

ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

我做这些完全错了吗?

更新根密码应该不会这么难吧?

【问题讨论】:

  • 我是否需要执行这些service mysql stop mysqld_safe --skip-grant-tables & mysql -uroot
  • Stack Overflow 用于编程问题。 Database Administrators 是询问数据库管理问题的正确位置。那里有很多关于更改 root 密码的问题。

标签: mysql linux ubuntu mysql-error-1064


【解决方案1】:

正如消息所述,您的服务器当前正在运行,启用了skip-grant-tables 选项。这意味着您的服务器完全不受任何凭据的保护

https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_skip-grant-tables

由于您已完全禁用授权,因此您无法发布授权。由于您知道旧的root密码,因此您不需要skip-grant-tables来更改密码;别那样做。仅当您需要重置 忘记的 root 密码时才需要。

您也可能根本不想删除用户 - MySQL 可以使用ALTER USER 安全地更改密码。

【讨论】:

  • 你能不能......向我解释一下为什么我们需要做这些service mysql stop mysqld_safe --skip-grant-tables & mysql -uroot?是不是只有忘记root密码才需要重新设置?
  • @kyo Running with skip-grant-tables 表示无需密码即可登录,这在您忘记密码时很有用。其余的只是基本的“停止服务”和“以 root 用户登录 mysql”。在运行它们之前,您应该了解正在运行的命令 - 盲目地运行来自 Internet 的您不了解的命令,很有可能无法挽回地破坏数据。
猜你喜欢
  • 1970-01-01
  • 2014-01-13
  • 2020-06-07
  • 2015-08-28
  • 1970-01-01
  • 2020-08-09
  • 2021-01-07
  • 2012-02-08
  • 2018-06-09
相关资源
最近更新 更多