Mysql5.7开启远程登陆

前言

开启远程登陆的时候老是出问题,这里总结一下。
先说明一下环境:
操作系统:Ubuntu Server18.04
Mysql版本:Mysql5.7

开启远程登陆

先总结一下标准的流程,有什么问题后面再说。
标准的流程:

  1. 创建数据库及用户
  2. 给用户添加所创建数据库的所有权限,包括远程登陆
  3. 刷新并写权限
  4. 修改mysqld.cnf
  5. 重启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';

Mysql5.7开启远程登陆_第1张图片

刷新并写权限

flush privileges;

最后确认一下是否成功写入:

--先切换到mysql数据库实例,这个数据库中存储着mysql的元数据
use mysql;
--查询wedo用户是否可以从任意位置登陆
select host, user from user;

Mysql5.7开启远程登陆_第2张图片
我们可以发现只有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这个配置项注释掉,修改好的如下:
Mysql5.7开启远程登陆_第3张图片
保存退出。

重启mysql

重启命令为:

sudo systemctl restart mysql.service

可以查看一下mysql服务是否正常启动:

systemctl status mysql.service

Mysql5.7开启远程登陆_第4张图片
至此氷可以在任何主机上连接此mysql了。

你可能感兴趣的:(数据库)