Linux服務器常見問題及解決方案

目錄

一、忘記MySQL的root用戶密碼的解決方法

二、配置mysql允許指定IP遠程訪問


一、忘記MySQL的root用戶密碼的解決方法

1. 停止運行的MySQL進程,後配置跳過授權表啓動MySQL

service mysqld stop

2. 打開一個Terminal,在  vim /etc/my.cnf 下添加:

[mysqld]
# 添加下面的語句
skip-grant-tables

3. 重啓mysql服務:

service mysqld restart

4. 打開一個Terminal, 打開安全模式的mysql, 連接的時候不需要密碼:

mysql -u root -p

--  MySQL5.7版本
mysql> UPDATE `mysql`.`user` SET `authentication_string`=PASSWORD('123456') WHERE `User`='root' AND `Host`='localhost';
--  MySQL5.6以前部分版本
mysql> UPDATE `mysql`.`user` SET `Password`=PASSWORD('123456') WHERE `User`='root' AND `Host`='localhost';

5.刷新權限

mysql> flush privileges;

6.刪除 etc/my.cnf 中的 skip-grant-tables

二、配置mysql允許指定IP遠程訪問

1.登錄遠程數據庫,查看用戶表

# 進入mysql數據庫
mysql> mysql -u username -p
# 查看錶
mysql> use mysql
mysql> select Host,User from user;

2.更新/授權用戶表# 更新用戶表

# 更新用戶表
mysql> UPDATE `user` SET `Host` = '123.456*.*' where `Host` = '113.128.*.*';

# 授權用戶表
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'123.456.*.*' IDENTIFIED BY 'password' WITH GRANT OPTION;

123.456.*.是允許遠程訪問的IP的值,root是賬戶名,後面的password是密碼
即,允許來自113.129..的連接並使用root賬戶和password這個密碼進行訪問
ALL PRIVILEGES ON 後面的*.*表示所有數據庫、所有的表,即完全訪問權限,可以指定爲特定數據庫。
如果允許所有ip訪問,則ip可以用%代替。

3.刷新權限

mysql> flush privileges;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章