Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103546417
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Mysql/postgreSQL

2008-05-26 09:20:17

 作者:天极软件 来源:天极软件

在安装MySQL后,你通过运行scripts/mysql_install_db安装初始的存取权限。见4.7.1 快速安装概述scripts/mysql_install_db脚本启动mysqld服务器,然后初始化授权表,包含下列权限集合:

  • MySQL root用户作为可做任何事情的一个超级用户被创造。连接必须由本地主机发出。注意:出世的root口令是空的,因此任何人能以root而没有一个口令进行连接并且被授予所有权限。
  • 一个匿名用户被创造,他可对有一个'test'或以'test_'开始的名字的数据库做任何时期事情,连接必须由本地主机发出。这意味着任何本地用户能连接并且视为匿名用户。
  • 其他权限被拒绝。例如,一般用户不能使用mysqladmin shutdownmysqladmin processlist

注意:对Win32的初始权限是不同的。见4.12.4 在Win32上运行MySQL

既然你的安装初始时广开大门,你首先应该做的事情之一是为MySQL root用户指定一个口令。你可以做如下(注意,你使用PASSWORD()函数指定口令):

shell> mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('new_password')
           WHERE user='root';
mysql> FLUSH PRIVILEGES;

MySQL 3.22和以上版本中,你可以使用SET PASSWORD语句:

shell> mysql -u root mysql
mysql> SET PASSWORD FOR root=PASSWORD('new_password');

设置口令的另一种方法是使用mysqladmin命令:

shell> mysqladmin -u root password new_password 

注意:如果你使用第一种方法在user表里直接更新口令,你必须告诉服务器再次读入授权表(用FLUSH PRIVILEGES),因为否则改变将不被注意到。

一旦root口令被设置,此后当你作为root与服务器连接时,你必须供应那个口令。

你可能希望让root口令为空白以便当你施行附加的安装时,你不需要指定它或测试,但是保证在任何真实的生产工作中使用你的安装之前,设置它。

看看scripts/mysql_install_db脚本,看它如何安装缺省的权限。你可用它作为一个研究如何增加其他用户的基础。

如果你想要初始的权限不同于上面描述的那些,在你运行mysql_install_db之前,你可以修改它。

为了完全重建权限表,删除在包含mysql数据库的目录下所有“*.frm”,“*.MYI”“*.MYD”文件。(这是在数据库目录下面命名为“mysql”的目录,当你运行mysqld --help时,它被列出。)然后运行mysql_install_db脚本,可能在首先编辑它拥有你想要的权限之后。

注意:对于比MySQL 3.22.10旧的版本,你不应该删除“*.frm”文件。如果你偶然做了,你应该在运行mysql_install_db之前你的MySQL分发中拷回它们。

阅读(658) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~