Linux下mysql的遠程連接


上一篇 :Linux下Mysql的安裝和設置

 

如果Mysql是按上篇的方法進行安裝和設置的話,那進行遠程連接就會稍微簡單一點。我就結合百度上的一些文章進行剖析。

本地計算機ip:192.168.1.100
遠程計算機ip:192.168.1.244

  

  1. 遠程連接上Linux系統,確保Linux系統已經安裝上了MySQL數據庫。登陸數據庫。mysql -uroot -p(密碼)。

     
     
  2.  創建用戶用來遠程連接

    GRANT ALL PRIVILEGES ON *.* TO 'itoffice'@'%' IDENTIFIED BY 'itoffice' WITH GRANT OPTION;

    (第一個itoffice表示用戶名,%表示所有的電腦都可以連接,也可以設置某個ip地址運行連接,第二個itoffice表示密碼)。

     
     
  3.  執行 flush privileges;命令立即生效
     
     
  4.   查詢數據庫的用戶(看到如下內容表示創建新用戶成功了)

     SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;

     
     
  5. 使用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

     
     
  6. 查看端口號

     show global variables like 'port';  

     
     
  7. 設置navicat連接。
     
     
  8. 點擊連接測試看到如下內容表示成功。

注意問題:

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)。

 

轉發請注明出處:http://www.cnblogs.com/fnlingnzb-learner/p/5830661.html


免責聲明!

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



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