【重要说明 】
mysql 新设置用户或更改密码后需执行flush privileges刷新MySQL的系统权限相关表,否则变更不会生效;
#mysql>flush privileges;
【创建删除用户】
1、创建用户
无限制IP用户:CREATE USER username IDENTIFIED BY 'password'
限制ip用户:CREATE USER username@ip IDENTIFIED BY 'password';
2、删除用户
#mysql>use mysql;
#mysql>delete from user where user="xxxxx" and host="localhost";
#mysql>flush privileges;
【修改用户密码】
方法太多,在此仅说两种。
1、使用grant命令
mysqladmin -h hostname -u user password 'new password'
mysqladmin -uroot -p***** password 'new password'
2、sql语句
use mysql;
update user set password=password('new-password ') where user='root ';
【赋予用户权限】
1、简介
grant all on databaseName .* to newuser @localhost identified by 'password ';
说明:
1、grant all
赋予用户所有的权限。主要包含如下14个权限select:insert:update:delete:create:drop:index:alter:grant:references:reload:shutdown:process:file 等。
2、databaseName .*
数据库 databaseName 中所有的表。*.*表示赋予用户所有数据库所有表的权限。
3、newuser
用户名
4、@localhost
在本地电脑上的 mysql server 服务器。'%'表示从任何地址连接。
5、identfified by 'password'
设置密码。不可缺少,否则命令执行失败。
2、例子
mysql>grant select,insert,update,delete,create,drop on vtdc.employee to [email protected] identified by '123';
给来自10.163.225.87的用户joe分配可对数据库vtdc的employee表进行select,insert,update,delete,create,drop等操作的权限,并设定口令为123。
mysql>grant all privileges on vtdc.* to [email protected] identified by '123';
给来自10.163.225.87的用户joe分配可对数据库vtdc所有表进行所有操作的权限,并设定口令为123。
mysql>grant all privileges on *.* to [email protected] identified by '123';
给来自10.163.225.87的用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。
mysql>grant all privileges on *.* to joe@localhost identified by '123';
给本机用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。