繁体   English   中英

如何更改MySQL实例root用户密码?

[英]How change MySQL instance root user password?

我以前在Ubuntu上只有一个MySQL服务器实例,但是出于安全原因,我决定使用两个实例,因为测试和生产应用程序都将对Web用户开放。 因此,我配置了两个MySQL服务器实例并运行mysqld_multi start来设置数据库。 我的/etc/mysql/my.cnf:

[mysqld0]
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
user=mysql
pid-file=/var/run/mysqld/mysqld0.pid
socket=/var/run/mysqld/mysqld0.sock
port=3306
datadir=/home/prod/data
log_error=/var/log/mysql/error0.log

[mysqld1]
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
user=mysql
pid-file=/var/run/mysqld/mysqld1.pid
socket=/var/run/mysqld/mysqld1.sock
port=3307
datadir=/home/test/data
log_error=/var/log/mysql/error1.log

使用mysqld_multi start 0,1我启动了两个实例,但无法用root用户访问它们-拒绝对localhost上root的访问。

我尝试遵循这些说明(提供其他--socket参数) https://support.rackspace.com/how-to/mysql-resetting-a-lost-mysql-root-password/,因为它们确实对我有所帮助,但是没有用。

当以安全模式连接到MySQL时,我还会看到在原始实例中设置的先前用户。

也许我了解多个MySQL服务器实例,以及它们应如何以错误的方式工作? 是否所有实例共享同一用户? 如何获得对新创建实例的访问权限?

必须使用其他参数运行mysqld_safe-为每个实例提供目录mysqld_safe --mysqld=/usr/sbin/mysqld --basedir=/home/test/data/mysql --datadir=/home/test/data --skip-grant-tables 之后一切都按预期进行

这是您可以在SQL中完成的方法

对于MySQL 5.7.6或更高版本,您可以执行

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPassword';

或者对于MySQL 5.7.5或更早版本,您可以执行

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM