Workbench连接不上阿里云服务器Ubuntu的Mysql解决方法(已测)

 更新时间:2020年02月15日 12:21:29   投稿:mdxy-dxy  
这两天为了解决workbench连接不上阿里云服务器的问题,搞得头大,网上搜到的教程都大同小异,但唯独到我这就是行不通。不过好在最后终于解决了,记录一下这个坑爹的过程,另外脚本之家小编特把这些问题整理了一下,看完这一篇文章基本上就解决了

这两天为了解决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. 无法连接到服务器

一开始连接的时候是出现下面这种状态。

遇到的坑之一

网上查到的大多数方法就是修改bind_address的值

先检查以下mysql的端口状态

netstat -anp|grep mysql

ps:如果显示127.0.0.1:3306 则说明需要修改,若为: : :3306,则不用

因为我显示的状态是127.0.0.1:3306是这个值,所以得去修改。

网上查到的大多数修改配置文件路径均说是在**/etc/mysql/my.cnf**,但这是对旧版本而已,由于我装的是最新版,所以打开这个文件之后发现里面并没有bind_address这个给值。后来查了一下才发现,新版的是在**/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

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
找到my.cnf文件,一般在/etc/my.conf
向内容中添加skip_ssl命令关闭SSL

service mysqld restart

重启mysql

设置所有IP可以访问,修改localhost为127.0.0.1等就不说了,网上有很多文章可以参考,对安全组和SSL不熟悉的可以参考以上方法

连接数据库时useSSL=false的作用

useSSL=false
MySQL在高版本需要指明是否进行SSL连接

1.true 需要连接
2.false 不需要连接

5. 搞定

到此文章就介绍了,这样基本上什么都解决了。 

相关文章

  • 关于Mysql如何设计高性能的数据库

    关于Mysql如何设计高性能的数据库

    这篇文章主要介绍了关于Mysql如何设计高性能的数据库,mysql支持的数据类型非常多,选择正确的数据类型对于获得高性能至关重要,本文就来详细说明如何设计出高性能的数据库,需要的朋友可以参考下
    2023-07-07
  • MYSQL中统计查询结果总行数的便捷方法省去count(*)

    MYSQL中统计查询结果总行数的便捷方法省去count(*)

    查看手册后发现SQL_CALC_FOUND_ROWS关键词的作用是在查询时统计满足过滤条件后的结果的总数(不受 Limit 的限制)具体使用如下,感兴趣的朋友可以学习下
    2013-07-07
  • MySQL正则表达式匹配查询(含实例)

    MySQL正则表达式匹配查询(含实例)

    MySQL中正式表达式通常被用来检索或替换符合某个模式的文本内容,根据指定的匹配模式匹配文中符合要求的特殊字符串,下面这篇文章主要给大家介绍了关于MySQL正则表达式匹配查询的相关资料,需要的朋友可以参考下
    2022-09-09
  • MySQL实现显示百分比显示和前百分之几的方法

    MySQL实现显示百分比显示和前百分之几的方法

    这篇文章主要介绍了MySQL中如何显示百分比和显示前百分之几的,文中的示例代码讲解详细,对我们学习MySQL有一定的帮助,感兴趣的小伙伴可以了解一下
    2021-12-12
  • MySQL8.0设置远程访问权限的方法

    MySQL8.0设置远程访问权限的方法

    这篇文章主要介绍了MySQL8.0设置远程访问权限的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • 解读mysql的for update用法

    解读mysql的for update用法

    这篇文章主要介绍了解读mysql的for update用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • MySQL中实现插入或更新操作(类似Oracle的merge语句)

    MySQL中实现插入或更新操作(类似Oracle的merge语句)

    这篇文章主要介绍了在MySQL中实现插入或更新操作(类似Oracle的merge语句)的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-09-09
  • 一文弄懂MySQL中redo log与binlog的区别

    一文弄懂MySQL中redo log与binlog的区别

    在学习mysql数据库时,不可避免要去接触到redo log和binlog,好多人对这两者的概念分不太清,下面这篇文章主要给大家介绍了关于MySQL中redo log与binlog区别的相关资料,需要的朋友可以参考下
    2022-02-02
  • mysql授权、启动、启动服务常用命令

    mysql授权、启动、启动服务常用命令

    本篇文章给大家分享了mysql授权、启动、启动服务常用命令总结,希望我们整理的内容对大家有用。
    2018-03-03
  • MySQL如何优雅的删除大表实例详解

    MySQL如何优雅的删除大表实例详解

    这篇文章主要给大家介绍了关于MySQL如何优雅的删除大表的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12

最新评论