前言
开启远程登陆的时候老是出问题,这里总结一下。
先说明一下环境:
操作系统:Ubuntu Server18.04
Mysql版本:Mysql5.7
开启远程登陆
先总结一下标准的流程,有什么问题后面再说。
标准的流程:
- 创建数据库及用户
- 给用户添加所创建数据库的所有权限,包括远程登陆
- 刷新并写权限
- 修改mysqld.cnf
- 重启mysql
创建数据库及用户
创建数据库名为wedo,并指定为utf8字符集
create database wedo default character set utf8 collate utf8_general_ci
创建用户,用户名为wedo,并指定密码
create user "wedo"@"%" identified by "2708poem";
开启远程登陆
给用户添加所创建数据库的所有权限,包括远程登陆
grant all privileges on wedo.* to 'wedo'@'%' identified by '123123' with grant option;
wedo.*表示把wedo数据库的所有权限赋给用户,privileges的英文意为权限的意思。
'wedo'@'%'
:表示wedo用户可以在任意设备上登陆%
表示任意IP地址的意思,
identified by '123123'
:设置用户的密码
with grant option
:表示把当前用户对wedo数据库的权限传给wedo用户。
比如说,当前用户为root,如果root拥有对wedo数据库的所有权限的话,wedo.*
就会把所有权限都传给wedo用户;
如果root用户只拥有对wedo数据库的读权限的话,wedo.*
就是只把读取权限传给wedo用户。
最好再确认一下Mysql的端口号是不是3306:
show global variables like 'port';
刷新并写权限
flush privileges;
最后确认一下是否成功写入:
--先切换到mysql数据库实例,这个数据库中存储着mysql的元数据
use mysql;
--查询wedo用户是否可以从任意位置登陆
select host, user from user;
我们可以发现只有wedo用户的host值为’%'说明设置正确。
然后就可以exit退出mysql命令行了。
修改mysqld.cnf
该配置文件的位置一般为:/etc/mysql/mysql.conf.d/mysqld.cnf
sudo vim /etc/mysql/mysql.conf.d/mysqld
把bind-address = 127.0.0.1
这个配置项注释掉,修改好的如下:
保存退出。
重启mysql
重启命令为:
sudo systemctl restart mysql.service
可以查看一下mysql服务是否正常启动:
systemctl status mysql.service
至此氷可以在任何主机上连接此mysql了。