首页 > Operation System > mysql中怎样的用户拥有”super”权限?

mysql中怎样的用户拥有”super”权限?

2008年1月11日 发表评论 阅读评论

今天下午用前面提到的init-connect方法把一个mysql3.23.58的库倒到了5.0.x的库里
然后领导说,怎么那个什么页面还是乱码呀
他说的那个我知道,因为是用root用户直接连库的(init-connect的设定不生效)
于是我就胸有成竹的告诉领导是连库用了root用户的原因
然后我就在程序里把用户该成了一个普通用户
再一刷页面
“怎么还是乱码呀”
一下子,我的汗都出来了
“怎么会呀,那天测试过的,没有问题的”
于是我又重新倒库的sql语句iconv折腾了几下
重新倒库
还是不行
我仔细回想了上次测试的过程
最后,灵光一现:会不会是这个普通用户也有问题呀?
因为当时我给这个用户赋权限的时候因为其要access多个库
于是我就是用grant all privileges on *.*这种方式搞的
这样比较奇怪,我一般都是指定了某个数据库,很少有这样用”*”代替数据库名赋权限的
所以我就进mysql查了下
use mysql;
select User, Super_priv from user;
果然,这个“普通用户”的Super_priv是’Y’
而相应其他的用户(除了root)都是’N’
按照文档,具有”super”权限的用户连上mysql库,是会被忽略init-connect参数的
而php程序如果不指定,却省是用的latin1来连接数据库的
所以就乱码了呀
知道了原因,再改起来就容易了
update user set Super_priv = ‘N’ where User = ……
flush privileges;
一下就好了

原创文章,转载请注明: 转载自嘻嘻哈哈的部落格(blog)

本文链接地址: mysql中怎样的用户拥有”super”权限?

  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word