設定 mysql 的 root用戶 可以被外網存取後的問題
PHP中文网
PHP中文网 2017-05-18 10:52:20
0
1
811

修改 root 使用者可以不在本地的時候登入

mysql> use mysql;
Database changed
mysql> select host,user from user;
+-----------+------+
| host      | user |
+-----------+------+
| 127.0.0.1 | root |
| ::1       | root |
| localhost | root |
+-----------+------+
3 rows in set (0.00 sec)

mysql> update user set host='%' where user='root';
ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> exit;
Bye

以上步驟完成之後,遇到個問題就是:
在本地的時候mysql -uroot回車,回車後居然就可以直接登入了

反而不能透過密碼登入了:

C:\wamp\mysql\bin>mysql -uroot -p
Enter password: *********
ERROR 1045 (28000): Access denied for user 'root'@'localhost' 
(using password: YES)

C:\wamp\mysql\bin>

這是為什麼?

PHP中文网
PHP中文网

认证0级讲师

全部回覆(1)
習慣沉默

localhost不在%裡
mysql -uroot -h127.0.0.1 -p

mysql -uroot -p
相當於用2個使用者登入

update user set host='%' where user='root';
而且你這樣更改,相當於把上面3筆記錄都修改了,所以系統提示你"ERROR 1062 (23000): Duplicate entry '%-root ' for key 'PRIMARY'錯誤了,因為Host,User欄位是複合主鍵不唯一。

所以,LZ執行這句話,其實是不成功的。所以從這一步往下都不用看了。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!