mysql中默認(rèn)不支持遠(yuǎn)程連接了這樣也是為了安全考慮了,要不很容易給其它人下你數(shù)據(jù)庫,這個是非常嚴(yán)重的問題了.
安全考慮root賬戶一般只能本地訪問,但是在開發(fā)過程中可能需要打開root的遠(yuǎn)程訪問權(quán)限,下面是基本的步驟:
1、登錄到mysql中,為root進(jìn)行遠(yuǎn)程訪問的授權(quán),執(zhí)行下面的命令.
1.1、改表法:可能是你的帳號不允許從遠(yuǎn)程登陸,只能在localhost,這個時候只要在localhost的那臺電腦,登入mysql后,更改 “mysql” 數(shù)據(jù)庫里的 “user” 表里的 “host” 項(xiàng),從“localhost”改稱“%”,代碼如下:
- x:>mysql -u root -pvmware
- mysql> use mysql;
- mysql> update user set host = ‘%’ where user = ‘root’;
- mysql> select host, user from user;
- mysql> flush privileges; //Vevb.com
注:mysql> flush privileges; 使修改生效.
1.2、授權(quán)法:
例如,你想myuser使用mypassword從任何主機(jī)連接到mysql服務(wù)器的話,代碼如下:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
如果你想允許用戶myuser從ip為192.168.1.3的主機(jī)連接到mysql服務(wù)器,并使用mypassword作為密碼,代碼如下:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword’ WITH GRANT OPTION;
第一句中"%"表示任何主機(jī)都可以遠(yuǎn)程登錄到該服務(wù)器上訪問,如果要限制只有某臺機(jī)器可以訪問,將其換成相應(yīng)的IP即可,代碼如下:
GRANT ALL PRIVILEGES ON *.* TO root@"172.168.193.25" IDENTIFIED BY "root";
第二句表示從mysql數(shù)據(jù)庫的grant表中重新加載權(quán)限數(shù)據(jù),因?yàn)镸ySQL把權(quán)限都放在了cache中,所以在做完更改后需要重新加載.
2、修改/etc/mysql/my.cnf,需要root用戶權(quán)限,找到文件中的,代碼如下:
bind-address = 127.0.0.1
將其注釋掉,保存.
3、重新啟動MySQL服務(wù)器,執(zhí)行下面的幾條命令即可:
# /usr/bin/mysqladmin -u root -p shutdown
# /usr/bin/mysqld_safe &
如果mysqladmin和mysql_safe不在/usr/bin目錄中,可以通過whereis命令查找,代碼如下:
# whereis mysqladmin
mysqladmin: /usr/bin/mysqladmin /usr/share/man/man1/mysqladmin.1.gz
執(zhí)行完上面的三步后,就可以通過遠(yuǎn)程機(jī)器連接了數(shù)據(jù)庫了,最后搞了那么多總結(jié)一句,還要一句就是防火強(qiáng)了,代碼如下:
iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
新聞熱點(diǎn)
疑難解答
圖片精選