阿里云ESC服务器远程配置MySQL

  • ​​下载MySQL​​
  • ​​配置远程访问​​
  • ​​Windows下配置远程连接​​
  • ​​出现问题​​

下载MySQL

首先在Linux/UNIX下载好MySQL
​下载和配置好MySQL​​

配置远程访问

把bind-address改成0.0.0.0,绑定任意地址0.0.0.0

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf #找到 bind-address 修改值为 0.0.0.0(如果需要远程访问)
sudo /etc/init.d/mysql restart #重启mysql
sudo mysql -uroot -p    # 进入数据库
#切换数据库
mysql>use mysql;
#查看状态
select host,user,plugin from user;
#设置权限与密码

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码'; #使用mysql_native_password修改加密规则
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '密码' PASSWORD EXPIRE NEVER; #更新一下用户的密码
mysql> UPDATE user SET host = '%' WHERE user = 'root'; #允许远程访问

#刷新cache中配置 刷新权限
mysql>flush privileges;
mysql>quit;

其中root@localhost,localhost就是本地访问,配置成 % 就是所有主机都可连接

Windows下配置远程连接

下载好navicat可视化工具
​​​navicat下载​

阿里云ESC服务器远程配置MySQL_mysql


输入主机号和账户密码即可

阿里云ESC服务器远程配置MySQL_MySQL_02

出现问题

在将root设置为%可访问的时候,可能会出现密码不符合要求的情况

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

此时需要进入到

mysql>SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------+-------+
| validate_password.check_user_name | ON |
| validate_password.dictionary_file | |
| validate_password.length | 4 |
| validate_password.mixed_case_count | 1 |
| validate_password.number_count | 1 |
| validate_password.policy | LOW |
| validate_password.special_char_count | 1 |
+--------------------------------------+-------+
7 rows in set (0.00 sec)

设置密码的验证强度等级

set global validate_password_policy=LOW

当前密码长度为 8,我们设置为4

set global validate_password_length=6;

关于 mysql 密码策略相关参数;

  • validate_password_length 固定密码的总长度;
  • validate_password_dictionary_file 指定密码验证的文件路径;
  • validate_password_mixed_case_count 整个密码中至少要包含大/小写字母的总个数;
  • validate_password_number_count 整个密码中至少要包含阿拉伯数字的个数;
  • validate_password_policy 指定密码的强度验证等级,默认为 MEDIUM;
    关于 validate_password_policy 的取值:
  • LOW:只验证长度;
  • MEDIUM:验证长度、数字、大小写、特殊字符;
  • STRONG:验证长度、数字、大小写、特殊字符、字典文件;
  • validate_password_special_char_count 整个密码中至少要包含特殊字符的个数;

有些小伙伴可能出现10060错误码无法访问的情况,这是因为在阿里云下的防火墙没有打开

配置好防火墙即可

阿里云ESC服务器远程配置MySQL_MySQL_03


有时候还得配置好安全组,不过大多数时候第一种即可

阿里云ESC服务器远程配置MySQL_navicat_04


完成

阿里云ESC服务器远程配置MySQL_navicat_05