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

如何更改MySQL实例根用户密码?,mysql,Mysql,我以前在Ubuntu上只有一个MySQL服务器实例,但出于安全原因,我决定使用两个实例,因为测试和prod应用程序都将对web用户开放。因此,我配置了两个MySQL服务器实例,并运行了mysqld\u multi-start来设置数据库。My/etc/mysql/My.cnf: [mysqld0] !includedir /etc/mysql/conf.d/ !includedir /etc/mysql/mysql.conf.d/ user=mysql pid-file=/var/run/mys

我以前在Ubuntu上只有一个MySQL服务器实例,但出于安全原因,我决定使用两个实例,因为测试和prod应用程序都将对web用户开放。因此,我配置了两个MySQL服务器实例,并运行了
mysqld\u multi-start
来设置数据库。My/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\u multi-start 0,1
I启动两个实例,但无法在root用户拒绝本地主机上root用户访问的情况下访问它们

我尝试按照这些说明(提供额外的--socket参数)操作,因为它们以前确实帮助过我,但没有任何用处

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


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

以下是如何在SQL中进行访问

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

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPassword';
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');
或者对于MySQL 5.7.5或更早版本,您可以

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPassword';
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');

Had必须使用附加参数运行mysqld_safe——为每个实例提供dir
mysqld_safe——mysqld=/usr/sbin/mysqld——basedir=/home/test/data/mysql——datadir=/home/test/data——跳过授权表
。在那之后,一切都按预期进行了

这与用户class='root'所在的
更新用户集身份验证\u string=PASSWORD(“mynewpassword”)有何不同?成功运行此更新后,我什么也没有得到:/I我尝试运行这些查询,但由于怀疑,我收到消息,它们无法执行,因为--skip grant tables。