首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >MySQL:如何重置或更改MySQL根密码?

MySQL:如何重置或更改MySQL根密码?
EN

Stack Overflow用户
提问于 2013-05-15 11:47:23
回答 22查看 545.7K关注 0票数 210

如何在ubuntu服务器中更改MySQL超级用户密码和用户名?在设置任何更改之前,是否需要停止mysql服务?

我也有一个phpmyadmin设置,phpmyadmin会自动更新吗?

EN

回答 22

Stack Overflow用户

发布于 2017-09-06 21:41:07

对我有效的方法(Ubuntu 16.04,mysql 5.7):

停止MySQL

sudo service mysql stop

创建MySQL服务目录。

sudo mkdir /var/run/mysqld

授予MySQL用户写入服务目录的权限。

sudo chown mysql: /var/run/mysqld

手动启动MySQL,不进行权限检查或联网。

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

在另一个控制台上,不使用密码登录。

mysql -uroot mysql

然后:

UPDATE mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';
EXIT;

关闭MySQL。

sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

正常启动MySQL服务。

sudo service mysql start
票数 86
EN

Stack Overflow用户

发布于 2019-10-23 14:55:15

首先运行以下命令:

sudo mysql

然后,您应该检查您的MySQL用户帐户的哪种身份验证方法use.So运行此命令

SELECT user,authentication_string,plugin,host FROM mysql.user;

现在你已经可以看到类似的东西了:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+

在上面的表格中,您可以看到所有mysql用户的帐户状态&如果您在plugin列中看到mysql_native_password而不是auth_socket之前为根帐户设置了密码。总而言之,为了更改root密码,您应该运行:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

请务必将密码更改为您选择的强密码。然后,为了重新加载您的服务器以使新的更改生效,运行以下命令;

FLUSH PRIVILEGES;

因此,再次检查mysql使用的身份验证方法,使用以下命令:

SELECT user,authentication_string,plugin,host FROM mysql.user;

现在的输出是:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *3636DACC8616D997782ADD0839F92C1571D6D78F | mysql_native_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+

正如您在授权表中看到的,您的根帐户具有mysql_native_password。现在可以退出MYSQL shell了

exit;

这是it.just,你应该通过sudo service mysql restart重启mysql。现在,您可以使用您的密码以root帐户轻松登录mysql。

票数 62
EN

Stack Overflow用户

发布于 2018-06-25 20:21:34

我在使用ubuntu 18.04和MySQL5.7时遇到了问题,这就是解决方案

在执行命令之前尝试重新启动mysql-server

sudo service mysql restart

MYSQL-服务器>= 5.7

sudo mysql -uroot -p
USE mysql;
UPDATE user SET authentication_string=PASSWORD('YOUR_PASSWORD') WHERE User='root';
UPDATE user SET plugin="mysql_native_password";
FLUSH PRIVILEGES;
quit;

MYSQL-SERVER < 5.7

sudo mysql -uroot -p
USE mysql;
UPDATE user SET password=PASSWORD('YOUR_PASSWORD') WHERE User='root';
UPDATE user SET plugin="mysql_native_password";
FLUSH PRIVILEGES;
quit;
票数 47
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16556497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档