一般我们在做开发或者测试时,都免不了数据库的操作,为了方便,我们都是使用工具(Navicat、SQLyog等工具)去远程连接数据库,再进行数据库的操作,提高方便
1.查看用户是否能够远程连接 登录MySQL
mysql -u root -p;
输入密码,登录上后
use mysql;
查看
select host,user,authentication_string from user;
找到你想要配置远程连接的用户,这里显示此数据库的host为localhost,意为即仅限本地主机访问
2.创建远程连接用户 ①增加远程连接权限:
GRANT ALL PRIVILEGES ON *.* TO 'userName' @ 'IPAddress' IDENTIFIED BY 'userPw' WITH GRANT OPTION;
说明: 1.ALL PRIVILEGES:给予所有权限,也可以枚举处出你想要给予的权限 2. * . *:第一个 * 代表指定用户下所有的数据库,第二个 * 代表指定数据库下所有表,也可以指定数据库和表。 3.userName:用户名 4.IPAddress:允许远程连接的IP地址,localhost代表本地主机,%代表所有IP地址 5.userPw:用户密码
②刷新权限:
FLUSH PRIVILEGES;
③重新查看权限:
select host,user from user;
④当看到想要远程连接的用户在host一列显示”%”,则就以配置成功了 ⑤再使用Navicat、sqlyog等工具远程登录 或者使用创建远程连接用户 ①输入:
create user 'x2'@'%' identified by '123456';
如果发现如图报错: 则需要: 设置mysql密码策略:
set global validate_password_policy=0;
设置mysql密码长度:
set global validate_password_length=4;
②赋予远程连接的权限:
grant all privileges on *.* to 'x2'@'%';
③刷新权限:
flush privileges;
④重新查看权限:
select host,user from user;
⑤当看到想要远程连接的用户在host一列显示 ”%”,则就已配置成功了 ⑥再使用Navicat、SQLyog等工具远程登录
附加:如果发现如图报错
则需要在服务器Linux中(完成下列三个步骤即可) 1.重启网络服务:
systemctl start network.service;
2.关闭防火墙:
systemctl stop firewalld.service;
3.重启mysql服务:
systemctl start mysqld.service;