Mysql配置遠程連接

解決外網不能訪問的問題。

mysql> select host, user from user; 
+--------------+------+
| host         | user |
+--------------+------+
| 127.0.0.1    | root |
| iz25phahu3az |      |
| iz25phahu3az | root |
| localhost    |      |
| localhost    | root |
+--------------+------+
5 rows in set (0.00 sec)

mysql> update user set host = '%' where user = 'root';
ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'
mysql> select host, user from user; 
+--------------+------+
| host         | user |
+--------------+------+
| %            | root |
| 127.0.0.1    | root |
| iz25phahu3az |      |
| iz25phahu3az | root |
| localhost    |      |
+--------------+------+
5 rows in set (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)



注意,這樣配置完後會出現一個問題。
我們用遠程連接沒事,但ssh上去用root就會出現問題,root沒有權限了。
這樣解決:

       1. 關閉mysql,service mysqld stop

  2. 啓動mysql: mysqld_safe --skip-grant-tables

  3. 再打開一個ssh連接服務器,進行mysql操作

  [root@localhost ~]#mysql

  Welcome to the MySQL monitor. Commands end with ; or \g.

  Your MySQL connection id is 7

  Server version: 5.0.77 Source distribution

  Type 'help;'or '\h' for help. Type '\c' to clear the buffer.

  mysql>show databases;

  在這個模式下是可以看到mysql數據庫的。

  在數據庫名mysql下的user表中,修改相應權限,比如:

  INSERT INTO `user` VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0);
      
       這一串太長了,我懶得一個一個寫了,然後直接改的127.0.0.1那條記錄的Host字段爲localhost

  如果已經存在了host爲localhost的記錄,則先刪除該記錄,delete from userwhere host='localhost';

  然後再進行INSERT INTO `user` VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0);

  操作。

  操作完成後,將兩個ssh連接都關閉,然後再重新連接一個ssh,啓動mysql,service mysqld start,然後用mysql命令連接mysql數據庫

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