客戶端不能連接MySQL - 2003-Can't connect to MySQL server on '192.168.43.180'(10060 "Unknown error")


客戶端不能連接MySQL

  場景:

    數據庫(此處以MySQL為例)安裝在虛擬機里面,在宿主機上進行連接數據庫的時候始終不能連接,但在虛擬機中使用正常。

  

  

  針對上面的場景:

    1. 在虛擬機里面可以正常使用MySQL

    2. 在宿主機上進行連接的時候,始終不能連接

  

  解決方案:

    第一步:檢查賬號是否支持遠程鏈接?

     相關操作指令:

      # mysql -uroot -p     使用root用戶鏈接mysql    

      # show databases             查看已有的數據框(主要是為了找:mysql 這個數據庫)

      # use mysql             使用mysql這個數據庫

      # select user,password,host from user;      查詢已有的數據庫賬號

      

      

      注意:

        一定要有那個帶有%的一條記錄。

        % 表示:允許所有的ip進行連接,如果這里是一個ip地址:192.168.1.100,也就說,允許192.168.1.100這個ip的電腦進行連接。

        如果沒有這條記錄,需添加(即:創建賬號或者進行修改賬號的host為%),這里進行添加 :

        # insert into user(user,password,host) values('learn',password('learn'),'%')

        # commit;

        #  grant all privileges on learn.* to learn@'%';       將learn這個數據庫的所有操作權限給learn這個用戶

        # flush  privileges;

     

    第二步:檢查 防火牆(linux)是否關閉?或者釋放了3306(如果防火牆關閉了,就無需釋放)

      解決方法一:直接關閉防火牆,如下

      #  firewall-cmd --state 

      如果是開着的,直接關閉,使用指令,

      # systemctl stop firewalld

      如果把防火牆關閉了,就可以直接連接mysql了

      但是每次重啟或者關機后還要重新來 一遍,麻煩,所以我用方法二,開放MySQL專用的端口3306就可以了啊

      解決方法二:開放MySQL專用的端口3306,如圖

      

 

       查看是否已經開放3306端口

      firewall-cmd --query-port=3306/tcp

      開放端口3306

      firewall-cmd --permanent --add-port=3306/tcp

      重啟防火牆

      firewall-cmd --reload

      問題解決

   以上兩步基本上就可以解決問題了。

   上面的指令是針對CentOS 7.x版本的。

 


免責聲明!

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



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