数据库默认只允许从本地连接,从其他主机发出的连接会被拒绝,其他主机操作服务器上MySQL时,就需要开启远程账户。Windows系统下开启远程账户比较容易,在Ubuntu,由于MySQL的配置文件是只读类型,过程会稍微繁琐。
1.开放3306端口:
127.0.0.1:3306表示MySQL默认绑定local host,拒绝远程访问。
输入以下命令:
输入 sudo su 进入root账户,需要输入密码,
cd命令转到mysqld.cnf文件目录下,执行chomd 755 命令修改配置文件权限(默认为只读文件,vi命令无法修改),
vi修改文件,找到bind-address = 127.0.0.1将其注释,开放所有连接(输入 i 可插入字符,修改完成后,按esc可退出,光标移到最后一行,输入 :wq 即可保存修改)。
2.设置密码格式:
MySQL的密码强度等级分为 0/LOW、1/MEDIUM、2/STRONG。有以下取值:
Policy Tests Performed
0 or LOW Length
1 or MEDIUM Length; numeric, lowercase/uppercase, and special characters
2 or STRONG Length; numeric, lowercase/uppercase, and special characters; dictionary file
默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。
如果你的密码恰好符合MEDIUM,可跳过这一步,否则需要将密码强度改为LOW,甚至修改密码长度,否则会出现如下错误:
登陆MySQL:mysql -u -p
将密码强度设为LOW;
set global validate_password_policy=0;
LOW默认的密码长度为8,如有需要可以通过以下命令修改(最小长度为4,password_length=1,2,3,4结果都一样),
set global validate_password_length=4;
3.添加远程账户:
如果是Windows只需要进行这一步就可以了,哭泣。
grant all privileges on *.* to 用户名 @"%" identified by "密码";
*.* 代表 数据库名.表名,数据库名.* 代表给数据库中所有表都赋予权限。
@ 后面是访问mysql的客户端ip地址(或是 主机名) % 代表任意的客户端。
密码要符合第二步里设置的密码格式。
立即生效:
flush privileges;
至此Ubuntu16.04下MySQL添加远程账户就设置完成了。