阿里雲telnet 3306端口失敗

在阿里雲的服務器上安裝了MySQL, 而後遠程訪問老是不通。 查詢了好久,排查思路以下:html

  1. 檢查mysql是否啓動
  2. 檢查本機3306端口是否處於監聽狀態
  3. 檢查阿里雲控制檯是否開啓了安全限制
  4. 檢查mysql用戶可否在遠程進行登陸
  5. mysql 的 bind-address 設置爲 127.0.0.1

咱們來一步步排查。mysql

  1. mysql是否啓動
    這個比較簡單, ps -ef | grep mysql 若是能看到對應的進程就是沒有問題的sql

  2. 檢查本機3306端口是否處於監聽狀態
    能夠經過netstat -tlanp | grep 3306 來看mysql是否在監聽。 若是本地端口監聽狀態 telnet 127.0.0.1 3306 看看是否成功, 若是成功, 則 在遠程 telnet 公網ip 3306 來判斷一下是否成功, 若是成功說明沒有問題, 若是失敗,繼續往下看安全

  3. 檢查阿里雲控制檯是否開啓了安全限制
    阿里雲默認是不會打開 3306端口的, 須要進行設置, 設置方法見: https://help.aliyun.com/document_detail/25471.html?spm=5176.11065259.1996646101.searchclickresult.42468fa7McebNN服務器

  4. 檢查mysql用戶可否在遠程進行登陸
    這個主要是在新建mysql用戶的時候 受權ip須要填寫 % , 能夠在遠程進入mysql而後查詢下。this

$ sudo mysql -u root -p
進入mysql客戶端以後,
use mysql;
select * from user;
查看一下 host 是否爲 %阿里雲

  1. mysql 的 bind-address 設置爲 127.0.0.1

要找到bind-address的設置, 須要找到mysql的配置文件
$ sudo find / -name my.cnfserver

這個時候就能看到全部的配置相關的文件, 我看到的文件中有這麼一段描述htm

'''
The MariaDB/MySQL tools read configuration files in the following order:進程

  1. "/etc/mysql/mariadb.cnf" (this file) to set global defaults,
  2. "/etc/mysql/conf.d/*.cnf" to set global options.
  3. "/etc/mysql/mariadb.conf.d/*.cnf" to set MariaDB-only options.
  4. "~/.my.cnf" to set user-specific options.
    '''

大意是根據根據 1,2,3,4的優先級來判斷,那麼就根據這4個文件尋找一下, 最後在 vi /etc/mysql/mariadb.conf.d/50-server.cnf 這個文件中找到了 bind-address 127.0.0.1 修改以後, 就完成了

相關文章
相關標籤/搜索