摘要
1
2
| mysql> CREATE DATABASE 库名;
mysql> create database sonar character set utf8mb4 collate utf8mb4_unicode_ci;
|
1
2
| mysql> USE 库名;
mysql> CREATE TABLE 表名 (字段名 VARCHAR(20), 字段名 CHAR(1));
|
1
| mysql> DROP DATABASE 库名;
|
1
| mysql> create user '[用户名称]'@'%' identified by '[用户密码]';
|
密码8位以上,包括:大写字母、小写字母、数字、特殊字符,%:匹配所有主机,‘localhost’,代表只能本地访问
1
| mysql> drop user [用户名称]@'%';
|
1
| mysql> grant all on [数据库名称].* to [用户名称];
|
*代表整个数据库
1
| mysql> revoke all on test.* from admin;
|
授权用户远程连接
在本机先使用root用户登录 mysql mysql -u root -p"youpassword"
进行授权操作:
1
| mysql> GRANT ALL PRIVILEGES ON *.* TO root@'%' identified by 'root';
|
重载授权表
1
| mysql> flush privileges;
|
方法1: 用SET PASSWORD
命令
首先登录MySQL。
格式
1
| mysql> set password for 用户名@localhost = password('新密码');
|
例子
1
| mysql> set password for root@localhost = password('123');
|
方法2:用mysqladmin
格式
1
| mysqladmin -u用户名 -p旧密码 password 新密码
|
例子
1
| mysqladmin -uroot -p123456 password 123
|
方法3:用UPDATE
直接编辑user表
首先登录MySQL。
1
2
3
| mysql> use mysql;
mysql> update user set password=password('123') where user='root' and host='localhost';
mysql> flush privileges;
|
方法4:使用 alter user 修改
1
2
| mysql> alter user 'root'@'%' identified by '123456';
mysql> flush privileges;
|
ERROR 1045 (28000): Access denied for user
大意就是你有一个用户名为空的账户,mysql会先匹配它,然后就一直提示你密码错误,删掉这个匿名用户,然后执行FLUSH PRIVILEGES
;
1
2
| mysql> delete from user where user=' ';
mysql> flush privileges;
|
插件库的文件名是validate_password
。要在服务器启动时加载插件,可以使用--plugin-load-add
选项来命名包含它的库文件。使用这种插件加载方法,必须在每次服务器启动时提供该选项。例如,将这些行放到服务器my.cnf文件中(根据需要调整平台的.so后缀)
1
2
3
4
| [mysqld]
plugin-load-add=validate_password.so
#服务器在启动时加载插件,并防止在服务器运行时删除插件。
validate-password=FORCE_PLUS_PERMANENT
|
1
| mysql> install plugin validate_password soname 'validate_password.so';
|
1
| mysql> show variables like 'validate_password%';
|
用于控制validate_password
行为系统参数
这些参数是要安装好validate_password 插件后才能通过show variables like 'validate_password%';
看到。
1
2
3
4
5
6
7
8
9
10
11
| validate_password_policy 这个参数用于控制validate_password的验证策略 0-->low 1-->MEDIUM 2-->strong。
策略解释
0 or LOW 校验级别最低,只校验密码长度,只要长度跟validate_password_length一样即可,默认长度是8位。
1 or MEDIUM 这个时候首先要满足的是validate_password_policy=0时的验证要求。然后先去验证密码中的数字个数,大小写个数,特殊字符个数。
2 or STRONG 这个时候必须先满足0,1的要求,然后它还追加了一个,对于密码中任意连续4个(或4个让上)字符不得是字典中的单词
validate_password_length密码长度的最小值(这个值最小要是4)。
validate_password_number_count 密码中数字的最小个数。
validate_password_mixed_case_count 大小写的最小个数。
validate_password_special_char_count 特殊字符的最小个数。
validate_password_dictionary_file 字典文件
|
1
2
3
4
| mysql> set global validate_password_length=8
mysql> set global validate_password_number_count=1
mysql> set validate_password_mixed_case_count=1
mysql> set validate_password_special_char_count=1
|