mysql %权限设置_MySql 权限配置

通过修改user表授权

MySQL 权限控制信息存储在表mysql.user中.

mysql.user 表字段如下:

host:用户通过哪台主机访问;

user: 用户名称

password: 加密密码

*_priv等字段就是对应的权限.

如下记录:

(host, user, select_priv) = (192.168.1.1, zhangsan, Y) 即在客户机192.168.1.1上通过zhangsan账号访问数据库, 具有查询权限.

(host, user, select_priv) = (192.168.1.2, zhangsan, N) 即在客户机192.168.1.2上通过zhangsan账号访问数据库, 没有有查询权限.

host 的值可以是127.0.0.1, localhost 代表本机的IP, 即在mysql服务器上登录mysql. %代表除本机外的其他客户机的IP.

(host, user, select_priv) = (%, zhangsan, Y) 即在任何客户机上通过zhangsan账号登录具有查询权限.

向user表中插入数据时, password需要用PASSWORD函数加密, 如:

INSERT INTO user (Host,User,Password) VALUES ('%','root', PASSWORD('123456'));

插入完成后执行FLUSH PRIVILEGES 刷新权限.

使用grant 命令授权

语法格式为 grant 权限 on 数据库对象名.表明 to 用户;

如grant select on testdb.* to zhangsan@'%'  张三通过任何客户机登录数据库可以对testdb下的任何表执行select操作.

grant all on *.* to zhangsan@localhost; zhangsan在本机登录可以管理 MySQL 中的所有数据库

解决远程客户端无权限登录mysql服务器的问题

刚安装完成mysql后, 通过客户端连接mysql可能会出现这样的问题:

Access denied for user 'root'@'localhost'

这就是没有授权给客户机登录, 解决办法可以参考上面的授权.

grant all on *.* to zhangsan@localhost;

或INSERT INTO user (Host,User,Password) VALUES ('%','root', PASSWORD('123456'));

使用insert into user比较繁琐, 每个权限字段都要赋值, 建议使用grant命令.

如果root也没有权限远程连接而又不能直接操作服务器, 可以进入mysql的安全模式进行授权,

开启mysql安全模式步骤如下:

1. 停止mysql服务 service mysqld stop

2. 执行mysqld_safe --user=mysql --skip-grant-tables --skip-networking

3. 执行mysql命令, 看是不是进入mysql啦!

进入后按上面说的配置权限就ok啦, 配置完成后退出mysql ,然后重启mysql服务 service mysqld restart.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值