配置Mysql遠程連接


一.賦予某個用戶權限

  1.賦予權限格式:grant 權限 on 數據庫對象 to 用戶@IP(或者相應正則)

    注:可以賦予select,delete,update,insert,index等權限精確到某一個數據庫某一個表。

    GRANT ALL PRIVILEGES ON *.* TO '用戶名'@'%' IDENTIFIED BY '密碼' WITH GRANT OPTION;

    這里表示賦予該用戶所有數據庫所有表(*.*表示所有表),%表示所有IP地址。

 

  2.刷新權限:FLUSH PRIVILEGES;

  3.查看權限:select user,host from mysql.user;

  

 

     注:mysql是自帶的數據庫名,里面的表是Mysql相關配置信息端口,事件等等,其中user存放用戶信息

      

 

  3.按理就可以在其他IP地址連接了(使用mysql -u用戶名 -h服務器ip地址 -P端口號 -p)

二.意外

  1.配置文件種指定了blind-address:

    查看Mysql配置文件種(一般是/etc/my.cnf種)是否指定了blind-address,這表示只能是某個或某幾個ip能連接。如果有就將它注釋了,前面加#號注釋。然后從啟mysql。

    重啟mysql:service mysqld restart,如果安裝的是Mariadb(我的就是),則需要使用systemctl restart mariadb.service

  2.防火牆的原因:

    可能會報:ERROR 2003 (HY000): Can't connect to MySQL server on '你要連接的IP' (111)。

    原因:1.可能是Mysql端口不對(默認是3306),只需加參數 -P 你的端口指定就行;

查看mysql服務端口 

       2.還有可能是有防火牆阻止,可以通過telnet來測試(可以直接關閉防火牆)。

          防火牆相關命令:

            (1)查看防火牆狀態:service  iptables status或者systemctl status firewalld或者firewall-cmd --state

            (2)暫時關閉防火牆:systemctl stop firewalld或者service  iptables stop或者systemctl stop firewalld.service

            (3)永久關閉防火牆:systemctl disable firewalld或者chkconfig iptables off或者systemctl disable firewalld.service

            (4)重啟防火牆:systemctl enable firewalld或者service iptables restart  或者systemctl restart firewalld.service

              (5)永久關閉后重啟:chkconfig iptables on

  

  3.端口未開啟:(我遇到的就是這個原因)

      Mysql:ERROR 2003 (HY000) 110(連接超時)

      查看你的服務器是否把對應端口打開,未打開啟動就行了。    


免責聲明!

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



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