mysql 無法遠程訪問(授權也沒辦法,確切的說是因為只綁定了127IP)


默認狀況下,出於安全考慮,mysql數據庫屏蔽了遠程訪問功能。 然而在許多狀況下,你需要在家或者從web程序去訪問遠端數據庫服務器,這就相當麻煩了。

第一步: 激活網絡設置
你需要編輯mysql配置文件my.cnf.

通常狀況,my.cnf放置於在以下目錄:
/etc/mysql/my.cnf (Debian linux)
/etc/my.cnf (Red Hat Linux/Fedora Linux)
/var/db/mysql/my.cnf (FreeBSD)

# vi /etc/my.cnf
然后用vi編輯my.cnf,修改內容從以下行:

[mysqld]

你所需要:
1. 確保skip-networking被刪除或者屏蔽,否則不支持TCP/IP 訪問
2. 增加行bind-address = 65.55.55.2,替代65.55.55.2 為你的服務器地址
修改后,配置為:
[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
language = /usr/share/mysql/English
bind-address = 65.55.55.2
# skip-networking
....
..

保存並關閉配置文件
重啟mysql服務器: # /etc/init.d/mysql restart

第二步, 給遠程ip授訪問權限
1. 以root身份登陸mysql # mysql -u root -p
2. 授權給新數據庫
如果你有一個新的數據庫名稱為foo。用戶bar需要在客戶端地址為202.54.10.20上訪問。

在服務器端執行 (授權法):
mysql> CREATE DATABASE foo;
mysql> GRANT ALL ON foo.* TO bar@'202.54.10.20' IDENTIFIED BY 'PASSWORD';

如何給以存在的數據庫授權?

如果用戶 webadmin 經常在客戶端地址202.54.10.20 訪問 webd數據庫,那么在服務器端執行的命令應該為(改表法):

mysql> update db set Host='202.54.10.20' where Db='webdb';
mysql> update user set Host='202.54.10.20' where user='webadmin';

第三步: 執行exit命令退出mysql環境,

第四步 測試
From remote system type command:
$ mysql -u webadmin —h 65.55.55.2 —p

注解;
-u webadmin: webadmin為mysql的用戶名 
-h IP or 域名: 65.55.55.2 is MySQL server IP address or hostname (FQDN) 
-p : 密碼提示
你也可以使用telnet去連接遠程的3306端口 $ telnet 65.55.55.2 3306


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM