1.创建用户
CREATE USER “USERNAME“@“%” IDENTIFIED BY “PASSWORD”;
这样一个用户就新建完成了。
CREATE USER ------创建用户后面跟上想要创建的用户名。
@% ------%表示主机,如果是%表示任何主机都可,但是想限制IP那么就写IP。例如:我想让只想1.1.1.1这个能够访问数据库那么就这样
CREATE USER “USERNAME“@“1.1.1.1” IDENTIFIED BY “PASSWORD”;
但是有个问题本萌新想问一下:就算我写的是%号,但是我用本机当做服务器的话,我新建的普通用户,还是无法登陆,除非我在user表中INSERT一条localhost进去才行,不知道这个是为什么啊?
2.给用户添加权限
我们新建一个普通用户后,虽然有这个账户了,但是没有权限了访问不了数据库。所以我们需要给他分配权限。
grant all privileges on *.* to 'USERNAME'@'%' identified by '账户的密码’;
all privileges:表示将所有权限授予给用户。也可指定具体的权限,如:SELECT、CREATE、DROP等。
on:表示这些权限对哪些数据库和表生效,格式:数据库名.表名,这里写“*”表示所有数据库,所有表。如果我要指定将权限应用到test库的user表中,可以这么写:test.user
to:将权限授予哪个用户。格式:”用户名”@”登录IP或域名”。%表示没有限制,在任何主机都可以登录。比如:”yangxin”@”192.168.0.%”,表示yangxin这个用户只能在192.168.0IP段登录
identified by:指定用户的登录密码
对用户做了权限变更之后,一定记得重新加载一下权限,将权限信息从内存中写入数据库。
mysql> flush privileges;
3.查看用户权限
查询某用户有哪些权限。注意后面的主机的名的不同,它所具备的权限也不是不同的。
SHOW GRANTS FOR "USERNAME"@"%";
4.回收/删除用户的某些权限
revoke create on *.* from 'USERNAME@localhost';
那么这条命令下去,该用户就不能创建任何数据库和表了。记得用第2项中的flush命令刷新一下权限。
5.删除用户
drop user 'USERNAME'@'%';
6.修改用户密码三种方法
6.1.更新mysql.user表
# mysql5.7之前
mysql> use mysql;
mysql> update user set password=password('123456') where user='root';
# mysql5.7之后
mysql> use mysql;
mysql> update user set authentication_string=password('123456') where user='root';
mysql> flush privileges;
6.2.set password for ‘用户名'@'登录地址'=password(‘密码')
mysql> SET PASSWORD FOR jeffrey@"%" = PASSWORD('biscuit');
6.3.mysqladmin -u 用户名 -p旧的密码 password 新密码
$ mysqladmin -u root -p123456 password 1234abcd
注意我的提示符已经转变成shell了,注意-p后面是没有空格的。
7.如果忘记了root密码,如何修改root的密码呢?且看下面
由于进行特殊模式进行登录,当前的一个shell会陷入黑洞中,所以建议多开一个ssh连接,用来做2、3步操作,
1.在操作系统中停止mysql服务进程 RHEL7以下:service mysqld stop
RHEL 7:systemctl stop mysql.service
2.使用下面命令跳过权限验证,也就不需要密码了。
mysqld_safe --skip-grant-tables
3.修改root密码
mysql> use mysql
Database changed
mysql> UPDATE user SET password=PASSWORD("Qwe123") WHERE user='root';
Query OK, 4 rows affected (0.01 sec)
Rows matched: 4 Changed: 4 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
最后干掉当前特殊模式下的mysql进程 重启一下服务,那么grant验证就又回来了。
如果错误恳请各位指出,谢谢!
相关链接: http://www.jb51.net/article/69761.htm http://www.jb51.net/article/87979.htm