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)
解決方法:
第一步: 授予使用者遠端登入的許可權
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 上登入,故不能實現遠端登入。
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
Ubuntu 下Mysql 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 *.*