首先是登录阿里云MySQL的一些必要信息(登录其他云主机的mysql同理):
使用SSH的方式连接到linux,具体连接参数的填写见下图
注意:网上很多教程写的连接方式中“主机名或IP地址”一栏写的都是公网ip,我实际使用中用公网ip连接始终报错.
显示错误:2013-Lost connection to MySQL server at "waiting for initial communication packet", systemerror:0 "Internet error/check(Not system error)"
Navicat报错2059:authentication plugin 'caching_sha2_password........
错误原因:mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password,在mysql验证密码时出现了该错误
解决方法:把mysql用户登录密码加密规则还原成mysql_native_password(在登录mysql后,运行如下命令)
Navicat报错1130:
ERROR 1130: Host xxx.xxx.xxx.xxx is not allowed to connect to this MySQL server
错误原因:被连接的数据不允许使用 公网ip 访问,只允许使用 localhost;
解决方法:首先尝试在mysql数据库的连接参数中的“主机名或ip”一栏中使用localhost登录不行的话,使用改表法。首先使用“mysql -u root -p”命令登录mysql,然后运行如下mysql命令:
mysql报错:
ERROR 1819 (HY000):Your password does not satisfy the current policy requirements
错误原因:新版本的mysql中默认安装了validate_password插件,该插件会检查mysql的用户密码强度,强度共分为三个等级:
以下是官方解释:
总结:
最低安全等级只校验密码长度(至少8位),中等必须包含至少一个数字,一个大写字母,一个小写字母,一个特殊字符(默认安全等级,官方示例:MyNewPass4!),想设置强力级密码的想必能看懂原文,就不翻译了
此外,从MySQL 5.7.15开始,validate_password支持拒绝与当前会话的有效用户帐户的用户名部分匹配的密码(正向或反向)。为了提供对此功能的控制,validate_password公开了一个validate_password_check_user_name系统变量,该变量默认启用。
注:本文涉及到的解决方案都是我遇到的问题的对应解决方案,不一定适用于每一个人,如果问题仍然存在,请继续百度查询其他解决方法
扫码加入阿里云云栖社群