mysql grant问题

创建一个只读用户

grant select on *.* to readonly @ '%' identified by 'readonly';

注:这里的%是指所有的用户,但是不包含本机(localhost),如果在本地也可以链接,需要给本地ip授权(localhost,127.0.0.1,或内网指定ip)

如果授权为localhost,链接时也需要指定为-h127.0.0.1

 

在linux服务器上连接数据库时,有两种连接方式,分别为:

1.tcp连接

2.linux socket(默认)

在本地连接时:

mysql -uroot -p -P3306

如果有多个实例,上述的连接是失败的,因为默认是socket链接,这样如果多个实例,就不能找到确切的socket(即时找到了,也是巧合这个库的socket恰巧是安装在默认路径)。

所以在多个实例前提下,想要是实现上述链接,需要指定IP或serverName或--protocol=TCP

 

 

问题一:

在授权为%(非本地主机授权)的时候,用这个账号登陆mysql,若不输入密码也可以登陆成功,但是只显示两个数据库

这个是因为mysql都会有默认的数据库,让所有用户可以访问。即时没有密码或忘掉密码。

问题二:

局域网内另外一台机器访问mysql

[root@co20 ~]# mysql -h192.168.0.40 -u readonly -p

Enter password:

ERROR 2003 (HY000): Can't connect to MySQLserver on '192.168.0.40' (113)

防火墙没有关闭

/etc/init.d/iptables stop

问题三:

局域网内另外一台机器访问mysql

mysql -h192.168.0.40 -u readonly -p

Enter password:

ERROR 1045 (28000): Access denied for user 'readonly'@'192.168.0.20' (using password: NO)

没输入密码或者密码不对

问题四:

[root@testing mysql]# mysql -u readonly -P 3306 -p
Enter password:
ERROR 1045 (28000): Access denied for user 'readonly'@'localhost' (using password: YES)

授权为%,而在本地localhost不允许登陆,即没有权限(权限取决于user和host)


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值