簡體   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