ERT、UPDATE等等),你应该执行一个FLUSH PRIVILEGES语句或运行mysqladmin flush-privileges告诉服务器再装载授权表,否则你的改变将不生效,除非你重启服务器。
5. 建立初始的MySQL权限
在安装MySQL后,你通过运行scripts/mysql_install_db安装初始的存取权限。包含下列权限集合:
* MySQL root用户作为可做任何事情的一个超级用户。连接必须由本地主机发出。注意:出世的root口令是空的,因此任何人能以root而没有一个口令进行连接并且被授予所有权限。
* 一个匿名用户,他可对有一个test或以test_开始的名字的数据库做任何时期事情,连接必须由本地主机发出。这意味着任何本地用户能连接并且视为匿名用户。
* 其他权限被拒绝。例如,一般用户不能使用mysqladmin shutdown或mysqladmin processlist。
为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
看看scripts/mysql_install_db脚本,看它如何安装缺省的权限。你可用它作为一个研究如何增加其他用户的基础
为了完全重建权限表,删除在包含mysql数据库的目录下所有“*.frm”,“*.MYI”和“*.MYD”文件。(这是在数据库目录下面命名为“mysql”的目录,当你运行mysqld --help时,它被列出。)然后运行mysql_install_db脚本,可能在首先编辑它拥有你想要的权限之后。
1. 向MySQL增加新用户权限
增加用户2个不同的方法:
通过使用GRANT语句或通过直接操作MySQL授权表。
比较好的方法是使用GRANT语句,因为他们是更简明并且好像错误少些。
shell> mysql --user=root mysql
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@localhost
IDENTIFIED BY something WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@"%"
IDENTIFIED BY something WITH GRANT OPTION;
mysql> GRANT RELOAD,PROCESS ON *.* TO admin@localhost;
mysql> GRANT USAGE ON *.* TO