MySQL是一種流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),廣泛運(yùn)用于各種網(wǎng)站和應(yīng)用程序。但有時會出現(xiàn)無法保存管理權(quán)限的情況,這可能會導(dǎo)致安全問題和數(shù)據(jù)泄露。
$mysql -u root -p
Enter password:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
然而,即使使用以上代碼為用戶授權(quán),有時仍然無法保存管理權(quán)限。這通常是因?yàn)镸ySQL的默認(rèn)安裝中使用了非常嚴(yán)格的MySQL配置文件my.cnf,而這種配置可能限制某些用戶所允許的操作。要解決這個問題,可以編輯my.cnf文件并添加以下內(nèi)容:
[mysqld]
skip-grant-tables
這將跳過MySQL默認(rèn)的授權(quán)表,并允許無需任何授權(quán)即可訪問MySQL服務(wù)器。一旦更改了my.cnf文件,需要重新啟動MySQL以使更改生效:
$ sudo service mysql restart
現(xiàn)在,您可以使用root用戶登錄MySQL并更新所有用戶的管理權(quán)限:
$ mysql -u root -p
Enter password:
mysql> UPDATE mysql.user SET Grant_priv = 'Y', Super_priv = 'Y' WHERE User = 'newuser';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1 Changed: 0 Warnings: 0
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
最后,不要忘記將my.cnf文件還原為默認(rèn)設(shè)置,以確保MySQL服務(wù)器的安全性和穩(wěn)定性。