公司服务器换了,需要重新搭建下web环境,在配置mysql远程连接的时候碰到了几个坑,之前也配置过,但这次由于mysql版本的不同,配置方法稍微不同,这里做个记录。
首先是,创建mysql用户,命令如下
CREATE USER 'jkxtc178'@'215.55.284.149';
@‘IP’,如果你不想指定ip访问,使用%即可,下边的命令出现@'IP’的都是这样。
然后是设置用户登陆密码:
ALTER USER 'jkxtc178'@'215.55.284.149' IDENTIFIED WITH mysql_native_password BY 'yourpassword';
注意msql_native_password,这里是设置密码的加密方式,由于mysql8之前的默认加密方式mysql_native_password,而之后是caching_sha2_password,所以我们要设置加密方式,这样我们在使用低版本的远程连接工具如Navicat时,可以保证加密方式一样,这样就不会出现密码错误了,当然如果你使用的是高版本的,可以不设置这个参数
然后是设置远程连接的权限:
GRANT ALL PRIVILEGES ON *.* TO 'jkxtc178'@'215.55.284.149' WITH GRANT OPTION;
到这里我们已经就mysql的用户设置完了,接下来就是对服务器的设置,包括两个:
1.开启3306端口,这个在服务器提供商控制台里通过安全组释放3306端口即可
到这里,一般都可以连接上了,如果连接不上提示错误,比如我在实际操作的过程中提示了unknown err,这里一般是服务器防火墙的问题
2.需要在防火墙策略里加入3306端口号,命令如下:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
然后需要重启下服务器防火墙,
firewall-cmd --reload
这里再去测试连接下,就可以连接了。