mysql权限机制
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql权限机制相关的知识,希望对你有一定的参考价值。
登录和退出Mysql
mysql -h -P -u -p -e
-h 指定主机名
-P 指定mysql服务器端口
-u 指定用户名
-p 指登录定密码
-e 接SQL语句
创建用户
1.create user wing;
create user [email protected]‘localhost’ identified by‘12345‘;
2.grant ALL on . to ‘user‘@‘localhost‘ identified by ‘123456‘
flush privileges;
删除用户
drop user ‘ueer1’@‘localhost’;
delete from mysql.user
where uesr=‘user2‘ and host=‘localhost‘
flush privileges;
修改用户名和密码
==root修改自己密码
1.mysqladmin -uroot -p‘123‘ password ‘new_password ‘
2.mysql>update mysql.user set authentication_string=password(mima) where user=‘root‘ and host=‘localhost‘;
3.set password=‘new_password‘;
==root修改其他用户密码
1.set password for [email protected]‘localhost‘=‘new_password‘;
2.update mysql.user set authentication_string=password(‘new_password‘) where user=‘user3‘ and host=‘localhost‘;
==普通用户修改自己的密码
set password=password(‘new_password‘);
alter user ‘wing‘ @‘localhost‘ identified by ‘new_password‘;
root账户没了或者root密码丢失:
关闭Mysql使用下面方式进入Mysql直接修改表权限
5.1/5.5版本 :
#mysqld_safe --skip-grant-tables --user=mysql &
5.6/5.7版本:
#mysqld --skip-grant-tables --user=mysql &
#mysql -uroot
mysql> UPDATE mysql.user SET authentication_string=password(‘new_password’)
WHERE user=’root’ AND host=’localhost’;
mysql> FLUSH PRIVILEGES;
======================================
密码复杂度限制策略:
MySQL5.7默认安装了validate_password插件,若没有安装,则SHOW VARIABLES LIKE ‘vali%‘则会返回空。
1、查看现有的密码策略
mysql> SHOW VARIABLES LIKE ‘validate_password%‘;
参数解释:
1).validate_password_dictionary_file 指定密码验证的文件路径;
2).validate_password_length 密码最小长度
3).validate_password_mixed_case_count 密码至少要包含的小写字母个数和大写字母个数;
4).validate_password_number_count 密码至少要包含的数字个数
5).validate_password_policy 密码强度检查等级,对应等级为:0/LOW、1/MEDIUM、2/STRONG,默认为1
0/LOW:只检查长度;
1/MEDIUM:检查长度、数字、大小写、特殊字符;
2/STRONG:检查长度、数字、大小写、特殊字符字典文件。
6).validate_password_special_char_count密码至少要包含的特殊字符数
2、创建用户时报错:
mysql> create user ‘miner‘@‘192.168.%‘ IDENTIFIED BY ‘miner123‘;
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
报错原因:密码强度不够。
解决方法:(该账号为测试账号,所以采用降低密码策略强度)
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password_length=4;
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW VARIABLES LIKE ‘validate_password%‘;
+--------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------+-------+
| validate_password_dictionary_file | |
| validate_password_length | 4 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | LOW |
| validate_password_special_char_count | 1 |
+--------------------------------------+-------+
6 rows in set (0.00 sec)
再次创建用户,成功
3.关闭validate_password插件:
在配置文件中加入以下并重启mysqld即可:
[mysqld]
validate_password=off
重启mysqld后通过SHOW PLUGINS可以查到:
+-------------------+----------+-------------------+----------------------+-----+
| validate_password | DISABLED | VALIDATE PASSWORD | validate_password.so | GPL |
+-------------------+----------+-------------------+----------------------+-----+
======================================
用户重命名:
RENAME USER old_name TO new_name;
创建账户:
mysql> create user [email protected]‘%‘ identified by ‘123‘;
%不包括127.0.0.1但是包括localhost (-h的时候适用)
远程登陆:
#mysql -u tom -p123 -h 10.18.44.196 -P 3307
以上是关于mysql权限机制的主要内容,如果未能解决你的问题,请参考以下文章