1. 程式人生 > >aliyun Ubuntu Mysql 無法遠端訪問

aliyun Ubuntu Mysql 無法遠端訪問

        今天工作中要在本地連結我的阿里雲MySQL,在伺服器本身命令列下連結MySQL資料庫一點問題都沒有,遠端連線卻死活連結不上去,網上查資料說是MySQL沒有開啟遠端訪問許可權,網上的資訊或許有些陳舊,最終還是自己摸索著把問題解決了,現在把問題現象及解決過程記錄在此,希望能給後來者提供一點兒幫助。

問題重現:

在windows下用MySQL WorkBench 遠端登入錯誤提示如下:


在linux命令列下登入提示錯誤如下:


[email protected]:~# mysql -h119.23.xxx.xxx -uroot -p
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on '119.23.xxx.xxx' (111)

[email protected]:~#

解決方法:

第一步: 授予使用者遠端登入的許可權

1.檢視root使用者是否有遠端登入的許可權

use mysql;

Database changed
mysql> select host,user,password from user;
+--------------+------+-------------------------------------------+
| host         | user | password                                  |
+--------------+------+-------------------------------------------+

| localhost    | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
| 192.168.1.1 | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
+--------------+------+-------------------------------------------+
2 rows in set (0.00 sec)

   可以看到在user表中已建立的root使用者。host欄位表示登入的主機,其值可以用IP,也可用主機名。

從上表中可以看出root使用者只允許在 localhost 上登入,故不能實現遠端登入。

 如果你想用某個IP登入,那麼可以將以上的Host值改為指定的Ip即可。有沒有方法可以讓任意IP都可以登入呢?當然有了,請往下看。

2、實現遠端連線(授權法)

   將host欄位的值改為%就表示在任何客戶端機器上能以root使用者登入到mysql伺服器,建議在開發時設為%。   

   update user set host = ’%’ where user = ’root’;

然而現在已經將root使用者設定為允許遠端登陸了,可是仍然登入不上。

從其一下伺服器,如果你也沒有解決,請繼續向下看:

3. 檢查配置檔案

最後檢查配置/etc/mysql/my.cnf :

是否有配置skip_networking: 這使MySQL只能通過本機Socket連線(socket連線也是本地連線的預設方式),放棄對TCP/IP的監聽,當然也不讓本地java程式連線MySQL。——沒有這個配置。
是否有配置bind_address=127.0.0.1(當然也可以是其他ip),這種情況可以指定TCP/IP連線 。有這個配置,把它登出掉,重啟mysql。

4.我最終的解決方法是:

vim /etc/mysql/mysql.conf.d/mysqld.cnf

註釋掉下面沒有被註釋的那句話

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address            = 127.0.0.1
#
# * Fine Tuning

#

上圖中沒有被註釋的那句話的意思是,資料庫繫結IP地址 127.0.0.1,只能在本地登入,不能通過公網IP登入,把這句話註釋掉就可以遠端連線了。

5.總結

實現MySql資料庫遠端連線需滿足一下條件:

    1. 資料庫允許通過公網IP地址登入,這是個大前提

    2. 資料庫使用者擁有遠端登入的許可權,比如上文中要為root使用者開放任意IP都能登入的許可權。

相關推薦

aliyun Ubuntu Mysql 無法遠端訪問

        今天工作中要在本地連結我的阿里雲MySQL,在伺服器本身命令列下連結MySQL資料庫一點問題都沒有,遠端連線卻死活連結不上去,網上查資料說是MySQL沒有開啟遠端訪問許可權,網上的資訊或許有些陳舊,最終還是自己摸索著把問題解決了,現在把問題現象及解決過程記錄在

已解決:mysql無法遠端訪問10061錯誤,各種方式授權後也無效(ubuntu 16.04LTS mysql 5.7.13)

先直接說解決方案 /etc/mysql/mysqld.conf.d/mysqld.cnf bind-address = 127.0.0.1 前面加# 變成 # bind-address = 127.0.0.1 sudo service mysql restart 5.5.7

ubuntu安裝lnmp後開啟mysql,redis遠端訪問

lnmp整合安裝後,即使關閉了伺服器防火牆,mysql依然不能遠端連線。因為lnmp預設添加了iptables規則,禁止了遠端訪問3306,6379埠。 root@iZjr5oba73m1ygZ:/usr/local/nginx/conf# iptables -L -n Chain

解決centos的mysql服務3306埠無法遠端訪問

    之前一期說過在centos下安裝寶塔控制面板,當登陸進去新建了資料庫,然後在windows使用navicat for mysql 遠端連線資料庫一直失敗,沒有解決就先用阿里的RDS先用著,直到近期找到了方法。     BBC伺服器版本(命令# lsb

UbuntuMysql server 遠端訪問

1. comment  /etc/mysql/mysql.conf.d/mysqld.cnf    bind-address  =127.0.0.11 2. execute sql grant all on *.* to [email pro

阿里雲ECS伺服器Ubuntu安裝MySQL遠端訪問

root賬戶登入伺服器Ubuntu16.04 apt-get update apt-get install mysql-server mysql-client; 安裝時會讓你設定root密碼,輸入2次。 本地連線mysql測試: mysql -uroot -p****(****是安裝時你設定的roo

Ubuntu設定MySQL允許遠端訪問

1.註釋bind-address = 127.0.0.1。 程式碼如下: > sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 將bind-address = 127.0.0.1註釋掉(即在行首加#),如下: 程式碼如下: # In

騰訊雲 Ubuntu 安裝並遠端訪問 MySQL

道理都懂,但還是連不上的話你就應該來看看... Info:Ubuntu Server 14.04.01 LTS 64 位 DataGrip 2016.2 前言 為了完成作業,不讓伺服器閒置,決定把資料庫放在遠端。免去本地配置的麻煩,這次的配置是基於騰訊的學生雲,系統選擇的是 Ubuntu Server 14.

解決虛擬機器linux端mysql資料庫無法遠端訪問

- 虛擬機器ping ip 埠 ping 192.168.16.128 成功 telnet 192.168.16.128 3306 拒絕訪問 在3306埠,可見CentOS防火牆遮蔽了3306埠

注意redis mysql mongodb遠端訪問問題

開啟redis遠端訪問 1. redis.conf   #bind 127.0.0.1 protected-mode  no 守護經常 後臺啟動 daemonize yes   mysql    &n

Centos7教程: MySQL開啟遠端訪問

1.安裝MySQL5.6--(MySQL安裝教程) 2. 使用iptables防火牆; 關閉firewall:  systemctl stop firewalld.service 若沒安裝iptables:  檢視是否安裝iptables: sy

xampp中MySQL允許遠端訪問

使用客戶端工具登陸MySQL,執行以下3條命令 切換 mysql 資料庫 USE mysql; root使用者許可權開放,密碼為root(BY ‘密碼’) GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘root

Mysql無法遠端連線解決方案

前言 Mysql 版本:5.7.23作業系統:Linux問題描述:只能通過Linux系統賬號Root命令列進入資料庫,無法使用JDBC,遠端連線工具進入資料庫。報錯:ERROR 1698 (28000): Access denied for user 'root'@'localhost'這個問題明顯就是沒有

Mysql 設定遠端訪問時使用者密碼問題

在mysql設定遠端訪問的時候,有一步操作為 授予遠端使用者許可權 mysql> grant all privileges on *.* to ‘root’@’%’ identified by ‘123456’ with grant option; 此時 ‘123456’ 是密碼

MySQL允許遠端訪問的設定

MySQL允許遠端訪問的設定 阿里雲需要在安全組中開放埠! 1.註釋bind-address = 127.0.0.1。 程式碼如下: sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 將bind-address = 127.0.0

把tomcat服務埠該為預設80,http://ip/jenkins/ 的地址無法遠端訪問

  最近在開發專案中,遇到的一個問題是:在 tomcat中釋出一個web專案,但是釋出成功後,只能用http://localhost:8080/jenkins訪問專案,不能用http://172.0.0.1:8080/jenkins訪問專案,也不能用本地的IP地址訪問,同

資料庫工作筆記008---mysql開啟遠端訪問許可權

 1.  //登入資料庫   mysql -u root -pvmwaremysql>use mysql;   //%為所有ip都可以遠端訪問   mysql>update user set host = '%' where user = 'root';

Mysql 設定遠端訪問時使用者密碼問題

在mysql設定遠端訪問的時候,有一步操作為 授予遠端使用者許可權 mysql> grant all privileges on . to ‘root’@’%’ identified by ‘123456’ with grant option; 此時 ‘1

設定MYSQL允許遠端訪問(navicat訪問報2003:10038錯誤)

當在Navicat for MySQL中填好連線名、ip、埠、使用者名稱、密碼之後,雙擊連線名時報‘2003-Can’t connect to MySQL server on ''xxx’(10038),這是什麼原因導致的呢?需要按照如下兩步進行修改MYSQL

阿里雲輕量應用伺服器mysql開啟遠端訪問

1.進入控制檯,點選防火牆按鈕 2.新增規則 3.新增mysql,埠號3306 4.登入mysql mysql -u root -p mysql 5.設定root使用者遠端連線的密碼為123456 grant all privileges on *.*