基於安全考慮root賬戶一般只能本地訪問,但是在開發過程中可能需要開啟root的遠端訪問許可權。下面是基本的步驟:
1、登入到mysql中,為root進行遠端訪問的授權,執行下面的命令:
mysql> grant all privileges on *.* to root@"%" identified by "root";
mysql> flush privileges;
第一句中"%"表示任何主機都可以遠端登入到該伺服器上訪問。如果要限制只有某台機器可以訪問,將其換成相應的ip即可,如:
grant all privileges on *.* to root@"172.168.2.135" identified by "root";
預設mysql的使用者是沒有遠端訪問的許可權的,因此當程式跟資料庫不在同一臺伺服器上時,我們需要開啟mysql的遠端訪問許可權。
主流的有兩種方法,改表法和授權法。
相對而言,改表法比較容易一點,個人也是比較傾向於使用這種方法,因此,這裡只貼出改表法
1、登陸mysql
mysql -u root -p
2、修改mysql庫的user表,將host項,從localhost改為%。%這裡表示的是允許任意host訪問,如果只允許某乙個ip訪問,則可改為相應的ip,比如可以將localhost改為192.168.2.135,這表示只允許區域網的192.168.2.135這個ip遠端訪問mysql。
mysql> use mysql;
mysql> update user set host = '%' where user = 'root';
mysql> select host, user from user;
mysql> flush privileges;
防火牆開放3306埠
1、開啟防火牆配置檔案
vi /etc/sysconfig/iptables
2、增加下面一行
-a input -m state --state new -m tcp -p tcp --dport 3306 -j accept
3、重啟防火牆
service iptables restart
4、注意:增加的開放3306埠的語句一定要在icmp-host-prohibited之前
附,我機器上的iptables 防火牆的設定:
# firewall configuration written by system-config-firewall
# manual customization of this file is not recommended.
*filter
:input accept [0:0]
:forward accept [0:0]
:output accept [0:0]
-a input -m state --state established,related -j accept
-a input -p icmp -j accept
-a input -i lo -j accept
-a input -i eth0 -j accept
-a input -m state --state new -m tcp -p tcp --dport 22 -j accept
-a input -m state --state new -m tcp -p tcp --dport 80 -j accept
-a input -m state --state new -m tcp -p tcp --dport 3306 -j accept
-a forward -m state --state established,related -j accept
-a forward -p icmp -j accept
-a forward -i lo -j accept
-a forward -i eth0 -j accept
-a input -j reject --reject-with icmp-host-prohibited
-a forward -j reject --reject-with icmp-host-prohibited
commit
mysql 遠端 MYSQL開啟遠端訪問許可權的方法
1 登陸mysql資料庫 mysql u root p 檢視user表 mysql use mysql database changed mysql select host,user,password from user host user password localhost root a731a...
mysql開啟遠端訪問許可權
1.改表法 登入資料庫 mysql u root pvmwaremysql use mysql 為所有ip都可以遠端訪問 mysql update user set host where user root 或直接新增一條語句也行 mysql insert into user host,user,p...
mysql開啟遠端訪問許可權
雲伺服器 ecs 伺服器上輸入 ps ef grep mysqld mysqld safe和mysqld都在,說明mysql程序是正常,若沒有這兩程序,執行 etc init.d mysqld start,啟動msyql。使用 netstat anpt 監聽得位址如果是 3306或者是0.0.0.0...