標籤:技術 media 本地 就會 生效 off state 表示 accept
轉載:http://www.cnblogs.com/fnlingnzb-learner/p/5830661.html
如果Mysql是按上篇的方法進行安裝和設定的話,那進行遠端連線就會稍微簡單一點。我就結合百度上的一些文章進行剖析。
本機電腦ip:192.168.1.100
遠端電腦ip:192.168.1.244
遠端連線上Linux系統,確保Linux系統已經安裝上了MySQL資料庫。登陸資料庫。mysql -uroot -p(密碼)。
- 建立使用者用來遠端連線
GRANT ALL PRIVILEGES ON *.* TO ‘itoffice‘@‘%‘ IDENTIFIED BY ‘itoffice‘ WITH GRANT OPTION;
(第一個itoffice表示使用者名稱,%表示所有的電腦都可以串連,也可以設定某個ip地址運行串連,第二個itoffice表示密碼)。
- 執行 flush privileges;命令立即生效
- 查詢資料庫的使用者(看到如下內容表示建立新使用者成功了)
SELECT DISTINCT CONCAT(‘User: ‘‘‘,user,‘‘‘@‘‘‘,host,‘‘‘;‘) AS query FROM mysql.user;
使用exit命令退出MySQL
然後開啟vim /etc/mysql/my.cnf
將bind-address = 127.0.0.1
設定成bind-address = 0.0.0.0(裝置地址)
重新啟動(命令如下):
/etc/init.d/mysql stop
/etc/init.d/mysql start
- 查看連接埠號碼
show global variables like ‘port‘;
- 設定navicat串連。
- 點擊串連測試看到如下內容表示成功。
注意問題:
1)我經常在輸入mysql -u root -p時,顯示cannot connect to mysql server...這種錯誤,後來發現是沒有開啟mysql。所以在以上操作之前記得看看Mysql有沒有開啟:
1 service mysql status --查看有沒有開啟服務2 service mysql start --開啟服務3 service mysql stop --停止服務4 service mysql restart --重啟服務
2)在進行上述串連後,我用navicat遠端連線mysql,發現還是不可以,鼓搗了很久,才發現是因為防火牆的問題,防火牆把3306連接埠屏蔽了。所以要設定防火牆:
設定防火牆允許3306連接埠vi /etc/sysconfig/IPtables添加-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT(注意添加在-A RH-Firewall-1-INPUT -j REJECT –reject-with icmp-host-prohibited之前,否則可能導致規則不生效)重啟防火牆service iptables restart
解決Mysql無法遠端連線的問題
1、Mysql的連接埠是否正確
通過netstat -ntlp查看連接埠佔用情況,一般情況下連接埠是3306。在用工具串連MySQl是要用到連接埠。例如My Admin\My Query Browser\MySQl Front等。
2、檢查使用者權限是否正確
mysql庫的user表裡有兩條記錄:host分別為localhost和%(為了安全,%可以換成你需要外部串連的IP)。
Linux下mysql的遠端連線(轉)