在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
这两天为了解决workbench连接不上阿里云服务器的问题,搞得头大,网上搜到的教程都大同小异,但唯独到我这就是行不通。不过好在最后终于解决了,记录一下这个坑爹的过程。 使用的环境: 系统:
1. 无法连接到服务器 一开始连接的时候是出现下面这种状态。 遇到的坑之一 网上查到的大多数方法就是修改bind_address的值 先检查以下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**。既然发现问题所在,那么改过来就很方便了。找到下面这部分,然后注释掉即可。
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数据库中的状态下执行下面命令
方法二:新添一个用户:
无论用了上面哪一种最后都得刷新一下刚才的设置
这两个方式都试了,还是不行,出现说我们目前的ip不允许连接。 后来试了好多次发现, 远程连接的用户名不要用root。经过几次重装尝试发现,设置root可以远程连接,就一直失败。 3. 关闭防火墙
4. 开放端口 阿里云或者其他云服务的用户一定要注意去开防对应的端口,默认状态mysql的端口为3306。 打开阿里云的控制台,添加安全组规则 有一个安全组限制的设置,设置一下入方向可以允许3306端口再尝试以下,瞬间就好了 阿里云ECS MySQL无法远程连接,如果你试了网上所有的教程还是无法连接请看下面 首先要检查防火墙,这是最基本的,很多教程会提到,开启3306端口
至于MySQL workbench我没有找到如何连接,所以还可选的是服务器禁用SSL
重启mysql 设置所有IP可以访问,修改localhost为127.0.0.1等就不说了,网上有很多文章可以参考,对安全组和SSL不熟悉的可以参考以上方法 连接数据库时useSSL=false的作用
5. 搞定 到此文章就介绍了,这样基本上什么都解决了。 |
请发表评论