1.注釋bind-address = 127.0.0.1。
代碼如下:
> sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
將bind-address = 127.0.0.1注釋掉(即在行首加#),如下:
代碼如下:
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
# bind-address = 127.0.0.1
除了注視掉這句話之外,還可以把后面的IP地址修改成允許連接的IP地址。但是,如果只是開發用的數據庫,為了方便起見,還是推薦直接注釋掉。
從上面的注釋中,可以看出,舊版本的MySQL(從一些資料上顯示是5.0及其以前的版本)上使用的是skip-networking。所以,善意提醒一下,使用舊版本的小伙伴請注意一下。
2.刪除匿名用戶
登錄進數據庫:
代碼如下:
> mysql -u root -p
然后,切換到數據庫mysql。SQL如下:
代碼如下:
use mysql;
然后,刪除匿名用戶。SQL如下:
代碼如下:
delete from user where user='';
3.增加允許遠程訪問的用戶或者允許現有用戶的遠程訪問。
接着上面,刪除匿名用戶后,給root授予在任意主機(%)訪問任意數據庫的所有權限。SQL語句如下:
代碼如下:
mysql> grant all privileges on *.* to 'root'@'%' identified by '這里替換成你的密碼' with grant option;
如果需要指定訪問主機,可以把%替換為主機的IP或者主機名。另外,這種方法會在數據庫mysql的表user中,增加一條記錄。如果不想增加記錄,只是想把某個已存在的用戶(例如root)修改成允許遠程主機訪問,則可以使用如下SQL來完成:
代碼如下:
update user set host='%' where user='root' and host='localhost';
flush privileges;
4.退出數據庫
代碼如下:
mysql> exit
在MySQL Shell執行完SQL后,需要退出到Bash執行系統命令,需要執行exit。因為這個太常用也太簡單。以下內容就提示“退出”,不再重復列出這個命令。
5.重啟數據庫
完成上述所有步驟后,需要重啟一下數據庫,才能讓修改的配置生效。執行如下命令重啟數據庫:
代碼如下:
> sudo service mysql restart