Workbench连接不上阿⾥云服务器Ubuntu的Mysql解决⽅法(已
测)
这两天为了解决workbench连接不上阿⾥云服务器的问题,搞得头⼤,⽹上搜到的教程都⼤同⼩异,但唯独到我这就是⾏不通。不过好在最后终于解决了,记录⼀下这个坑爹的过程。
使⽤的环境:
系统:
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. ⽆法连接到服务器
⼀开始连接的时候是出现下⾯这种状态。
安装mysql失败
遇到的坑之⼀
⽹上查到的⼤多数⽅法就是修改bind_address的值
先检查以下mysql的端⼝状态
netstat -anp|grep mysql
ps:如果显⽰127.0.0.1:3306 则说明需要修改,若为: : :3306,则不⽤
因为我显⽰的状态是127.0.0.1:3306是这个值,所以得去修改。
⽹上查到的⼤多数修改配置⽂件路径均说是在**/etc/mysql/myf**,但这是对旧版本⽽已,由于我装的是最新版,所以打开这个⽂件之后发现⾥⾯并没有bind_address这个给值。后来查了⼀下才发现,新版的是在**/etc/f.d/mysqldf**。既然发现问题所在,那么改过来就很⽅便了。到下⾯这部分,然后注释掉即可。
# 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⽤户远程访问数据库,所以得去改⼀些信息。
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表⽰⽤户可以从那些地址访问数据库。由于是localhost,所以只能本地访问。⼀共查到了两种修改⽅法,⼀个是直接将原本root 对应的host改成**%**,或者新添⼀个可以远程访问的⽤户。
⽅法⼀:
在进⼊mysql数据库中的状态下执⾏下⾯命令
update user set host='%' where user='root'
⽅法⼆:新添⼀个⽤户:
grant all privileges on *.* to new_user@'%' identified by "password";
⽆论⽤了上⾯哪⼀种最后都得刷新⼀下刚才的设置
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
这两个⽅式都试了,还是不⾏,出现说我们⽬前的ip不允许连接。
后来试了好多次发现,远程连接的⽤户名不要⽤root。经过⼏次重装尝试发现,设置root可以远程连接,就⼀直失败。
3. 关闭防⽕墙
# 先重启⼀下数据库
sudo service mysql restart
# 检查MySQL端⼝状况是否为 : : :3306
netstat -anp|grep mysql
# 关闭防⽕墙
sudo ufw disable
# 查看防⽕墙状态
sudo ufw status
4. 开放端⼝
阿⾥云或者其他云服务的⽤户⼀定要注意去开防对应的端⼝,默认状态mysql的端⼝为3306。
打开阿⾥云的控制台,添加安全组规则
有⼀个安全组限制的设置,设置⼀下⼊⽅向可以允许3306端⼝再尝试以下,瞬间就好了
阿⾥云ECS MySQL⽆法远程连接,如果你试了⽹上所有的教程还是⽆法连接请看下⾯
⾸先要检查防⽕墙,这是最基本的,很多教程会提到,开启3306端⼝
检查阿⾥云服务器安全组,看⼀下是否开启3306的出⼊站规则,这个真的好坑,不知道什么时候阿⾥云linux服务器上还有这个东西了,印象中只在Windows server上有
通过⼯具连接有的时候还是连接不上,会提⽰跟SSL有关的,我是⽤IDEA和MySQL workbench连接,IDEA是要在连接的URL上⾯添加useSSl=false
⾄于MySQL workbench我没有到如何连接,所以还可选的是服务器禁⽤SSL
到myf⽂件,⼀般在/f
向内容中添加skip_ssl命令关闭SSL
service mysqld restart
重启mysql
设置所有IP可以访问,修改localhost为127.0.0.1等就不说了,⽹上有很多⽂章可以参考,对安全组和SSL不熟悉的可以参考以上⽅法
连接数据库时useSSL=false的作⽤
useSSL=false
MySQL在⾼版本需要指明是否进⾏SSL连接
2.false 不需要连接
5. 搞定
到此⽂章就介绍了,这样基本上什么都解决了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论