mysql登錄方式有兩種,一種是本機登錄,一種是遠程登錄。這兩種登錄方式在mysql數據庫的user表中都有體現。
由於我們不可能總是本地登錄,因此需要設置遠程登陸。但是mysql默認不支持遠程登陸,所以需要設置一波。
1. 登錄數據庫。
2. 切換到mysql數據庫。
3. 查看主機和用戶對應情況,其實就是查看mysql數據庫的user表中的部分信息。
4. 此時,針對遠程用戶,我們有三種授權方式:
1) 授權法(推薦使用)
* 授權給所有ip
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;
* 授權給某ip
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'your ip' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;
2) 改表法(不推薦)
mysql>update user set host = '%' where user = 'root';
mysql>FLUSH PRIVILEGES;
此方法不推薦的原因是,它會把數據庫表全部改掉,如果你從本地登錄時,看到的數據庫結構和遠程登陸看到的結構不一樣,不利於本地修改。非常不推薦這種玩法!!!
3)修改mysql配置文件
找到mysql.cnf
把bind-address = 127.0.0.1 前面加上 #
即 #bind-address = 127.0.0.1
不過,就rpm安裝方式來說,我沒找到bind-address這一項;如果有這一項的話,將其修改為bind-address=0.0.0.0也可以實現遠程登陸,不過要重啟mysql服務。
還有一點,就是你要保證防火牆不會擋住mysql監聽端口(感覺是廢話,但是實際上經常就是防火牆問題o_o)