Mysql高级2—用户与权限管理及远程连接

1.MySQL的用户管理

1.1 创建用户

create user zhang3 identified by ‘123123’;

表示创建名称为zhang3的用户,密码设为123123;

1.2 查看MySQL用户

通过:mysql.user表查询当前用户的相关信息:

select host,user,password,select_priv,insert_priv,drop_priv from mysql.user;

在这里插入图片描述
表中:

1)host : 表示连接类型

  • % :表示所有远程通过 TCP方式的连接
  • IP 地址: 如 (192.168.1.2,127.0.0.1) 通过制定ip地址进行的TCP方式的连接
  • 机器名 通过制定i网络中的机器名进行的TCP方式的连接
  • ::1 IPv6的本地ip地址 等同于IPv4的 127.0.0.1
  • localhost 本地方式通过命令行方式的连接 ,比如mysql -u xxx -p 123xxx 方式的连接。

2)User:表示用户名

  • 同一用户通过不同方式链接的权限是不一样的。

3)password : 密码

  • 所有密码串通过 password(明文字符串) 生成的密文字符串。加密算法为MYSQLSHA1 ,不可逆 。
  • mysql 5.7 的密码保存到 authentication_string 字段中不再使用password 字段。

4)select_priv , insert_priv等

  • 为该用户所拥有的权限。

1.3 设置密码

1.修改当前用户的密码:

set password =password(‘123456’)

2.修改某个用户的密码:

update mysql.user set password=password('123456') where user='li4';
flush privileges;   #所有通过user表的修改,必须用该命令才能生效。

1.4 用户信息修改

1.修改用户名:

update mysql.user set user='li4' where user='wang5';
flush privileges;   #所有通过user表的修改,必须用该命令才能生效。

2.删除用户

drop user li4 ;

不要通过delete from user u where user=‘li4’ 进行删除,系统会有残留信息保留。

2.权限管理

2.1 授予权限

1.授权命令:

grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by ‘连接口令’;

2.该权限如果发现没有该用户,则会直接新建一个用户

比如 :

 #给li4用户用本地命令行方式下,授予test这个库下的所有表的插删改查的权限。
grant select,insert,delete,drop on test.* to li4@localhost  ;

#授予通过网络方式登录的的joe用户 ,对所有库所有表的全部权限,密码设为123.
grant all privileges on *.* to joe@'%'  identified by '123'; 

2.2 收回权限

1.查看当前用户权限:

show grants;

2.收回权限命令:

revoke 权限1,权限2,…权限n on 数据库名称.表名称 from 用户名@用户地址 ;

REVOKE ALL PRIVILEGES ON mysql.* FROM joe@localhost;
#收回全库全表的所有权限

REVOKE select,insert,update,delete ON mysql.* FROM joe@localhost;
#收回mysql库下的所有表的插删改查权限

注意:必须用户重新登录后才能生效

2.3 查看权限

1.查看当前用户权限

show grants;

2.查看某用户的全局权限

select * from user ;

3.查看某用户的某个表的权限

select * from tables_priv;

3.通过工具远程访问MySQL

使用远程工具连接MySQL

  • 1)关闭Linux的防火墙
  • 2)授权远程连接的用户和密码
  • 3)使用授权的账户和密码通过SQLyog或Navicat连接

具体步骤:

1、先 ping 一下数据库服务器的ip 地址确认网络畅通。

2、关闭数据库服务的防火墙

centos6:

service iptables stop (关闭防火墙)

centos7:

systemctl stop firewalld (关闭防火墙)

systemctl status firewalld (查看防火墙状态)
systemctl is-enabled firewalld (查看防火墙自启动状态)
systemctl disable firewalld (关闭防火墙的自动启动)
system enable firewalld (开启防火墙的自动启动)

3、 确认Mysql中已经有可以通过远程登录的账户

select * from mysql.user where user=‘用户名’ and host=’%’;

如果没有用户,先创建用户执行如下命令:

grant all privileges on *.* to 用户名@’%’ identified by ‘密码’;

4、测试连接:

在这里插入图片描述

5.如果使用的是Navicat远程工具,如果连接出错,在my.conf配置文件的mysqld下添加以下配置

skip-name-resolve

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值