如何在ubuntu服务器中更改MySQL超级用户密码和用户名?在设置任何更改之前,是否需要停止mysql服务?
我也有一个phpmyadmin设置,phpmyadmin会自动更新吗?
发布于 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
发布于 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。
发布于 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;
https://stackoverflow.com/questions/16556497
复制相似问题