这两天为了解决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服务启动,但是连接不上,如何解决? 登陆报错: 分析原因: 原因不详,知道了补上 解决方案一: 解决方案二: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
本文向大家介绍node链接mongodb数据库的方法详解【阿里云服务器环境ubuntu】,包括了node链接mongodb数据库的方法详解【阿里云服务器环境ubuntu】的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了node链接mongodb数据库的方法。分享给大家供大家参考,具体如下: 一、安装2.6版本以上的mongodb在云服务器上(百度就能查到安装方法,以及验证是否安装成功一般是
本文向大家介绍阿里云服务器ubuntu 配置教程,包括了阿里云服务器ubuntu 配置教程的使用技巧和注意事项,需要的朋友参考一下 由于阿里云的导入自定义 ubuntu 镜像需要开通 OSS 快照是收费的(看着感觉不贵,但是也很麻烦),而且自己已配置好的镜像想导入需要转换格式,还存在不能使用的情况,所以麻烦点直接在阿里云原来的ubuntu里直接配置需要用到的内容。 首先,阿里云服务器ubuntu默
本文向大家介绍阿里云ECS服务器部署django的方法,包括了阿里云ECS服务器部署django的方法的使用技巧和注意事项,需要的朋友参考一下 参考 服务器安装的是Centos 系统。 uwsgi是使用pip安装的。 nginx是使用yum install nginx安装。 python 2.7, mysql 5.5使用 yum安装。 它们之间的逻辑关系如下: the web client <->
买了一个阿里云服务器,必须要创建实例才可以使用吗?什么是阿里云服务器的实例呢?
本文向大家介绍详解阿里云CentOS Linux服务器上用postfix搭建邮件服务器,包括了详解阿里云CentOS Linux服务器上用postfix搭建邮件服务器的使用技巧和注意事项,需要的朋友参考一下 注:本文的邮件服务器只用于发送邮件,也就是STMP服务器。 一、准备工作 1. 为邮件服务器添加DNS解析 虽然不加DNS解析也能把邮件发出去,但会被大多数邮件服务器当作垃圾邮件。根据我们的实