免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2762 | 回复: 2
打印 上一主题 下一主题

MySQL的权限问题[已搞定,多谢rardge] [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-06-29 15:17 |只看该作者 |倒序浏览
OS:FreeBSD 6.0 RELEASE
MySQL:4.1.18
没有从ports安装,是从官方网站下载的源码编译安装,配置按照安装文档中的推荐:

  1. # pw groupadd mysql
  2. # pw useradd mysql -g mysql
  3. # ./configure CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti" --prefix=/usr/local/mysql --enable-assembler --with-mysqld-ldflags=-all-static
  4. # make
  5. # make install
  6. # cp support-files/my-medium.cnf /etc/my.cnf
  7. # cd /usr/local/mysql
  8. # bin/mysql_install_db --user=mysql
  9. # chown -R root .
  10. # chown -R mysql var
  11. # chown -R mysql .
  12. # bin/mysqld_safe --user=mysql &
复制代码

然后

  1. # /usr/local/mysql/bin/mysql -u root
  2. mysql>use mysql;
  3. mysql>delete from user;
  4. mysql>grant all on *.* to root@localhost identified by "password";
  5. mysql>grant all on firstdb.* to first@localhost identified by "first";
  6. mysql>grant all on seconddb.* to second@localhost identified by "second";
  7. mysql>create database seconddb;
  8. mysql>quit;
复制代码

#: /usr/local/mysql/bin/mysqladmin -u root flush-privileges
这时用first登录并安装自己的数据库表等一切正常。当再次

  1. # /usr/local/mysql/bin/mysql -u root -p
  2. Enter password:
  3. mysql>use mysql;
  4. mysql>delete from user where user="second";
  5. mysql>grant all on seconddb.* to second@localhost identified by "second";
复制代码

这时却出现错误:
ERROR 1044 (42000): Access denied for user 'root'@'localhost' to database 'second'
想请教高手,这个是怎么回事?grant all on *.* to root@localhost identified by "password";没有赋于root所有的权限吗?
先此致谢!

[ 本帖最后由 guzhou 于 2006-6-29 20:41 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-06-29 15:33 |只看该作者
mysql>delete from user;
这一步,谁教你的?连后路都不留?呵呵
当你执行了这步后,因为还没有 flush,所以当时的 root 账号还能用 grant 指令。
但是,grant all 是赋予除了“grant”权限外的一切权限,就是说,grant 创建的账号,本身没有执行 grant 的权限!
直接修改数据库吧,select * from mysql.user where host='localhost' and user='root' 看,Grant_priv 字段地方是 N 的,改成 Y,然后 flush。
简单点,就删除 mysql 的 data (也许是 var)目录下的东西,然后重新 bin/mysql_install_db --user=mysql,再开始你的设置,这次不要把 root@localhost 删除即可。

论坛徽章:
0
3 [报告]
发表于 2006-06-29 16:28 |只看该作者
多谢rardge。
就是说grant all 并不包括grant权限?一定要再加一个with grant option才行?
我一直以为grant all 就不必加with grant option了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP