当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 7 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 如何重建mysql授权表??
帖子发表于 : 2011-03-27 20:46 

注册: 2006-03-25 21:33
帖子: 79
送出感谢: 0 次
接收感谢: 0 次
mysql_install_db 的时候出了问题。

show databses 命令后,应该出现2个默认的数据库。mysql & test (这里的默认数据库mysql是mysql授权表。mysql的核心数据库,mysql_install_db也无法重建)
但是,这里出现的是 information_schema & test

如何mysql数据库的话,就没有授权表。mysq就l毫无用处。

而且mysqladmin的时候,会出现 erroe 1064(42000)。我使用的是已经编译过的版本(绝非自己编译),解压就可以使用的那种。

另外,我直接编译源代码的时候,也会出现这样的错误。真实让我郁闷啊。


附件:
Screenshot.png
Screenshot.png [ 168.43 KiB | 被浏览 1602 次 ]

页首
 用户资料  
 
2 楼 
 文章标题 : Re: 如何重建mysql授权表??
帖子发表于 : 2011-03-28 12:47 
头像

注册: 2008-07-28 19:51
帖子: 805
地址: 长沙
送出感谢: 1
接收感谢: 2
代码:
root@T410i:~# mysql_install_db --basedir =/usr --datadir=/home/mysql --user=mysql

出错的话,把内容贴上来看看


_________________
我的乌斑兔儿:http://zhanggang.net/m/b/b1/ubuntu右键选择在新的窗体打开
右边有一只黄手 ----> 或者注册Dropbox中文版感谢我


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 如何重建mysql授权表??
帖子发表于 : 2011-03-29 23:08 

注册: 2006-03-25 21:33
帖子: 79
送出感谢: 0 次
接收感谢: 0 次
这个错误相当奇怪。我完整的操作过程如下
tar -zxvf mysql-5.5.10-x86-64.tar.gz
move /opt/
sudo chown -R mysql:users /opt/mysql (已经建立过mysql用户)
sudo chmod 775 -R /opt/mysql
./scripts/mysql_install_db --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql/data
sudo cp ./support-files/my-medium.cnf /etc/my.cnf
sudo chown mysql /etc/cnf
sudo chmod 775 /etc/my.cnf
cp ./support-files/mysql.server /opt/mysql/bin/mysql.server
gedit mysql.server (如果不修改的话,启动会报错。因为原文档的mysql主目录和我的不一样)
--basedir=/opt/mysql
--datadir=/opt/mysql/data
./mysql.server start
至此,全部完成。
mysql <--启动客户端
mysql> show databases;
问题来了,本来应该出现2个初始数据库的。mysql && test。可是初始的mysql不见了。见我第一个帖子的贴图。上面很清除。只有一个test和information_schema的数据库。要知道,没有默认的mysql数据库(mysql数据库授权表),基本上mysql就是废的。根本没有办法使用mysqladmin命令(因为授权表的关系),如果在my.cnf设置中打开了PWD选项,那就根本不能使用客户端。天啊。这是类型的错误啊。从来没有遇到过啊。我使用kubuntu的时候,还是好好的。不过就是换到ubuntu环境下就出这么离谱的错误啊。


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 如何重建mysql授权表??
帖子发表于 : 2011-03-31 9:03 
头像

注册: 2008-07-28 19:51
帖子: 805
地址: 长沙
送出感谢: 1
接收感谢: 2
我没有从源码安装过,只操作过 Ubuntu 10.10下更改mysql的datadir ,不知道对你是否有帮助


_________________
我的乌斑兔儿:http://zhanggang.net/m/b/b1/ubuntu右键选择在新的窗体打开
右边有一只黄手 ----> 或者注册Dropbox中文版感谢我


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 如何重建mysql授权表??
帖子发表于 : 2011-03-31 9:26 
头像

注册: 2008-11-05 13:24
帖子: 1024
送出感谢: 0 次
接收感谢: 5
你以什么用户登录的mysql,怎么看像是当前用户?这样试试:mysql -uroot -p


_________________
笔记
-------------------------------------
http://blog.163.com/wqt_1101


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 如何重建mysql授权表??
帖子发表于 : 2011-04-18 20:42 

注册: 2006-03-25 21:33
帖子: 79
送出感谢: 0 次
接收感谢: 0 次
自我解答

mysql的确是通过授权表来实现对用户和数据库的管理。所以,mysql授权表是mysql的精华所在。

我所遇到的问题,其根本原因在于mysqladmin 的PWD操作不能进行。就是说,在mysql 4版本的时候,可以通过mysqladmin命令来对mysql的root用户进行密码设置。而且,在mysql 4时代,数据库对于如何用户是可见的。(在安装有mysql服务的机器上,所有的操作对于数据库来说,都是可见的。可见就表示可以操作。)那么在mysql 5的时候,这个问题有了解决方案。(就是针对root用户,数据库全部可见,对于其他用户,根据mysql授权表中的设置,来决定数据库是可见还是不可见的。)当用mysql用户登录的时候,mysql作为操作数据库的基本用户,是不可以操作授权表的。(因为在默认的授权表中,没有mysql用户。)只能用root用户登录数据库,在使用 set password命令来设置root用户的密码。这样,所有数据库就是可见的。精华的mysql数据库也就出现了。完成root用户的密码设置以后,就可以正常使用mysql了。不过,所以书本上建议的操作都是基于mysql用户的。虽然mysql用户可以建立数据库,建立表,但是,仅仅是建立数据库而已。无权删除数据库的。(表除外)。给大家的建议,完成root的密码设置以后,在mysql授权表中增加mysql用户及其相应的权限。(推荐用phpmysqladmin工具来进行。中文的,直观)

好了,经过N天的郁闷之后,mysql的操作基本上是搞懂了。对授权表的认识也算是更进一步。有喜欢讨论mysql的,可以联系我。


--------------万恶的mysql


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 如何重建mysql授权表??
帖子发表于 : 2011-04-18 20:59 
头像

注册: 2008-07-28 19:51
帖子: 805
地址: 长沙
送出感谢: 1
接收感谢: 2
一直都是使用Phpmyadmin来管理,通常把root设置一个复杂的密码,其他就是每次建用户的时候,顺带建一个与用户同名的表,并且赋予全部权限,没有像LS关注的这么细致。


_________________
我的乌斑兔儿:http://zhanggang.net/m/b/b1/ubuntu右键选择在新的窗体打开
右边有一只黄手 ----> 或者注册Dropbox中文版感谢我


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 7 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译