记如何远程连接Mysql及出现的问题

本地远程连接云服务器上的mysql

云服务器环境:Mysql8.0+Ubuntu16.04


一、安装mysql

首选本地和云服务器上都要安装好mysql


二、开发云服务器的端口

阿里云服务器默认不开放3306端口,因此需要手动开房3306端口,在安全组中进行选择开放。我使用的是Ubuntu版本,我安装了ufw作为防火墙管理工具,因此我还需要使用sudo ufw allow 3306使得防火墙允许3306的端口通过。


三、创建本地连接

我本地使用的Navicat for Mysql,按照如下图方式创建连接。

{:width=80%}

注:

ip地址:填写你的公网ip地址

用户名:填写数据库的用户

密码:填写该用户登入mysql所需的密码


四、服务器上创建新用户

这里我使用root用户连接时出现“外部连接mysql提示客户端不支持服务器请求的身份验证协议;考虑升级MySQL客户端”的问题

因为我是用的是Mysql8.0,相对于5.7比较严格,所以我重新创建了一个用户,赋予了所有权限,然后就成功连接。步骤如下

① 进入数据库:mysql -u root -p

password:

② 创建新用户:

create user 'syz' identified with mysql_native_password by 'password';

说明:

该行代码创建了用户名为syz,加密方式为mysql_native_password,密码为password的用户。

③ 为新用户赋予所有权限

grant all privileges on *.* to 'syz';

说明:

为该用户赋予所有数据库中所有表的所有权限。

④ 刷新数据库

flush privileges;

最后刷新数据库,使得刚才创建用户的语句立马生效。


五、重新建立连接

这样一来就成功建立连接了~


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!