一、创建新用户
mysql> create user xjzw@'10.0.0.%' identified by '1';
Query OK, 0 rows affected (0.01 sec)
二、查看当前数据库正在登录的用户
mysql> select user();
+----------------+
| user() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)
三、查看系统中用户信息
1,指定字段查询
查看所有用户的名、白名单、密码三个字段
mysql> select user,host,authentication_string from mysql.user;
2,查询所有字段
拓展\G代表纵向显示信息(尾端不打分号“;”)
mysql> select * from mysql.user\G
四、修改用户密码
1,未登录状态下修改
· 没有密码的前提下
[root@db01 local]# mysqladmin password '1'
· 有密码的前提下
[root@db01 local]# mysqladmin -uroot -p1 password 'xinjizhiwa'
2,登录状态下修改
mysql> alter user root@'localhost' identified by '1';
#############
刷新
mysql> flush privileges;
拓展:mysql5.6和5.7版本的修改密码方式如下
#5.7版本修改密码;
mysql> updata mysql.user set authentication_string=PASSWORD("123") where user='root'
#5.6版本修改密码
mysql> set password for 'root'@'localhost'=PASSWORD('123');
五、重置/破解数据库密码
1,杀死mysql进程,关闭mysql
2,跳过权限验证和端口监听启动mysql
[root@db01 local]# /usr/local/mysql/bin/mysqld_safe --skip-grant-tables --skip-networking &
参数说明
--skip-grant-tables #跳过授权表验证;
--skip-networking #跳过监听端口;
3,此时登录mysql
[root@db01 local]# mysql -uroot
4,加载回授权表
刷新同步磁盘和内存,将磁盘中的数据,同步到内存中(即mysql内部开启授权表)
本质上就是把授权表加载回来
mysql> flush privileges;
5,此时就可以设置密码操作了
mysql> alter user root@'localhost' identified by '123';
6,重启数据库
· 再查一遍mysql进程,kill掉
· 重启数据库
[root@db01 local]# systemctl restart mysql.service
六、删除用户
1,指定用户名和白名单删除
mysql> drop user xjzw@'10.0.0.%';
Query OK, 0 rows affected (0.01 sec)
2,从系统表里删除
mysql> delete from mysql.user where user='xinjizhiwa' and host='%';
Query OK, 1 row affected (0.03 sec)
删除后记得刷新
mysql> flush privileges;
七、锁定、解锁用户
#锁定
mysql> alter user xinjizhiwa@'%' account lock;
#解锁
mysql> alter user xinjizhiwa@'%' account unlock;