Workbench連接不上阿里云服務(wù)器Ubuntu的Mysql解決方法(已測(cè))
這兩天為了解決workbench連接不上阿里云服務(wù)器的問(wèn)題,搞得頭大,網(wǎng)上搜到的教程都大同小異,但唯獨(dú)到我這就是行不通。不過(guò)好在最后終于解決了,記錄一下這個(gè)坑爹的過(guò)程。
使用的環(huán)境:
系統(tǒng):
Ubuntu 18.04.2 LTS
Mysql:mysql Ver 14.14 Distrib 5.7.29, for Linux (x86_64) using EditLine wrapper
MySQL Workbench8.0CE
1. 無(wú)法連接到服務(wù)器
一開(kāi)始連接的時(shí)候是出現(xiàn)下面這種狀態(tài)。

遇到的坑之一
網(wǎng)上查到的大多數(shù)方法就是修改bind_address的值
先檢查以下mysql的端口狀態(tài)
netstat -anp|grep mysql
ps:如果顯示127.0.0.1:3306 則說(shuō)明需要修改,若為: : :3306,則不用
因?yàn)槲绎@示的狀態(tài)是127.0.0.1:3306是這個(gè)值,所以得去修改。
網(wǎng)上查到的大多數(shù)修改配置文件路徑均說(shuō)是在**/etc/mysql/my.cnf**,但這是對(duì)舊版本而已,由于我裝的是最新版,所以打開(kāi)這個(gè)文件之后發(fā)現(xiàn)里面并沒(méi)有bind_address這個(gè)給值。后來(lái)查了一下才發(fā)現(xiàn),新版的是在**/etc/mysql/mysql.conf.d/mysqld.cnf**。既然發(fā)現(xiàn)問(wèn)題所在,那么改過(guò)來(lái)就很方便了。找到下面這部分,然后注釋掉即可。
# 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
2. 修改mysql.user表的信息
為了能讓root用戶遠(yuǎn)程訪問(wèn)數(shù)據(jù)庫(kù),所以得去改一些信息。
mysql -u root -p password mysql>use mysql Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> select user,host from user; +------------------+----------------+ | user | host | +------------------+----------------+ | root | localhost | | debian-sys-maint | localhost | | mysql.session | localhost | | mysql.sys | localhost | +------------------+----------------+
上面的host表示用戶可以從那些地址訪問(wèn)數(shù)據(jù)庫(kù)。由于是localhost,所以只能本地訪問(wèn)。一共查到了兩種修改方法,一個(gè)是直接將原本root對(duì)應(yīng)的host改成**%**,或者新添一個(gè)可以遠(yuǎn)程訪問(wèn)的用戶 。
方法一:
在進(jìn)入mysql數(shù)據(jù)庫(kù)中的狀態(tài)下執(zhí)行下面命令
update user set host='%' where user='root'
方法二:新添一個(gè)用戶:
grant all privileges on *.* to new_user@'%' identified by "password";
無(wú)論用了上面哪一種最后都得刷新一下剛才的設(shè)置
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
這兩個(gè)方式都試了,還是不行,出現(xiàn)說(shuō)我們目前的ip不允許連接。

后來(lái)試了好多次發(fā)現(xiàn), 遠(yuǎn)程連接的用戶名不要用root。經(jīng)過(guò)幾次重裝嘗試發(fā)現(xiàn),設(shè)置root可以遠(yuǎn)程連接,就一直失敗。
3. 關(guān)閉防火墻
# 先重啟一下數(shù)據(jù)庫(kù)
sudo service mysql restart
# 檢查MySQL端口狀況是否為 : : :3306
netstat -anp|grep mysql
# 關(guān)閉防火墻
sudo ufw disable
# 查看防火墻狀態(tài)
sudo ufw status
4. 開(kāi)放端口
阿里云或者其他云服務(wù)的用戶一定要注意去開(kāi)防對(duì)應(yīng)的端口,默認(rèn)狀態(tài)mysql的端口為3306。
打開(kāi)阿里云的控制臺(tái),添加安全組規(guī)則


有一個(gè)安全組限制的設(shè)置,設(shè)置一下入方向可以允許3306端口再嘗試以下,瞬間就好了
阿里云ECS MySQL無(wú)法遠(yuǎn)程連接,如果你試了網(wǎng)上所有的教程還是無(wú)法連接請(qǐng)看下面
首先要檢查防火墻,這是最基本的,很多教程會(huì)提到,開(kāi)啟3306端口
檢查阿里云服務(wù)器安全組,看一下是否開(kāi)啟3306的出入站規(guī)則,這個(gè)真的好坑,不知道什么時(shí)候阿里云linux服務(wù)器上還有這個(gè)東西了,印象中只在Windows server上有
通過(guò)工具連接有的時(shí)候還是連接不上,會(huì)提示跟SSL有關(guān)的,我是用IDEA和MySQL workbench連接,IDEA是要在連接的URL上面添加
useSSl=false
至于MySQL workbench我沒(méi)有找到如何連接,所以還可選的是服務(wù)器禁用SSL
找到my.cnf文件,一般在/etc/my.conf
向內(nèi)容中添加skip_ssl命令關(guān)閉SSL
service mysqld restart
重啟mysql
設(shè)置所有IP可以訪問(wèn),修改localhost為127.0.0.1等就不說(shuō)了,網(wǎng)上有很多文章可以參考,對(duì)安全組和SSL不熟悉的可以參考以上方法
連接數(shù)據(jù)庫(kù)時(shí)useSSL=false的作用
useSSL=false
MySQL在高版本需要指明是否進(jìn)行SSL連接1.true 需要連接
2.false 不需要連接
5. 搞定

到此文章就介紹了,這樣基本上什么都解決了。
- MySQL WorkBench管理操作MySQL教程
- MySQL Workbench的使用方法(圖文)
- Mysql Workbench查詢mysql數(shù)據(jù)庫(kù)方法
- Mysql WorkBench安裝配置圖文教程
- MySQL Workbench下載與使用教程詳解
- Ubuntu下mysql與mysql workbench安裝教程
- MAC下Mysql5.7+ MySQL Workbench安裝配置方法圖文教程
- mysql 5.7.17 以及workbench安裝配置圖文教程
- mysql中workbench實(shí)例詳解
- centOS下mysql workbench安裝配置教程
- 詳解MySQL Workbench使用教程
相關(guān)文章
完美解決MySQL通過(guò)localhost無(wú)法連接數(shù)據(jù)庫(kù)的問(wèn)題
下面小編就為大家?guī)?lái)一篇完美解決MySQL通過(guò)localhost無(wú)法連接數(shù)據(jù)庫(kù)的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02
Mysql聯(lián)合查詢UNION和Order by同時(shí)使用報(bào)錯(cuò)問(wèn)題的解決辦法
很多朋友剛使用聯(lián)合查詢UNION的時(shí)候常常會(huì)理所當(dāng)然的將聯(lián)合查詢理解為把沒(méi)一個(gè)子查詢的結(jié)果集組合成一個(gè)大的結(jié)果集2014-04-04
MySQL5.7.03 更換高版本到MySQL 5.7.17安裝過(guò)程及發(fā)現(xiàn)問(wèn)題解決方案
這篇文章主要介紹了MySQL5.7.03 更換高版本到MySQL 5.7.17安裝過(guò)程及發(fā)現(xiàn)問(wèn)題解決方案,需要的朋友可以參考下2017-08-08
mysql數(shù)據(jù)表按照某個(gè)字段分類輸出
這篇文章主要介紹了mysql數(shù)據(jù)表按照某個(gè)字段分類輸出的方法,十分的簡(jiǎn)單實(shí)用,需要的朋友可以參考下2015-07-07
mysql 5.7.17 winx64解壓版安裝配置方法圖文教程
這篇文章主要為大家詳細(xì)介紹了mysql 5.7.17 winx64解壓版安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06
MySQL如何查看數(shù)據(jù)庫(kù)連接數(shù)
本文介紹了在MySQL中查看數(shù)據(jù)庫(kù)連接數(shù)的多種方法,包括使用SHOWSTATUS命令、查詢information_schema數(shù)據(jù)庫(kù)、使用SHOWPROCESSLIST命令、查看最大連接數(shù)以及使用性能模式,每個(gè)方法都有詳細(xì)的示例和注意事項(xiàng),幫助你有效地監(jiān)控和管理數(shù)據(jù)庫(kù)連接2024-11-11
監(jiān)聽(tīng)mysql表內(nèi)容變化 mysql開(kāi)啟binlog
這篇文章主要給大家介紹了關(guān)于監(jiān)聽(tīng)mysql表內(nèi)容變化,mysql開(kāi)啟binlog的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用mysql具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
SQL如何獲取目標(biāo)時(shí)間點(diǎn)或日期的方法實(shí)例
日期獲取在我們?nèi)粘i_(kāi)發(fā)中經(jīng)常會(huì)遇到,這篇文章主要給大家介紹了關(guān)于SQL如何獲取目標(biāo)時(shí)間點(diǎn)或日期的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-10-10
MySQL數(shù)據(jù)庫(kù)wait_timeout參數(shù)詳細(xì)介紹
這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)wait_timeout參數(shù)詳細(xì)介紹的相關(guān)資料,wait_timeout是MySQL中用于控制非交互式連接等待時(shí)間的系統(tǒng)變量,影響服務(wù)器資源管理和安全性,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-12-12

