加入收藏 | 设为首页 | 会员中心 | 我要投稿 航空爱好网 (https://www.dakongjun.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql数据库密码

发布时间:2022-10-18 15:44:03 所属栏目:MySql教程 来源:
导读:  1、修改数据库密码

  方法1: 用SET PASSWORD命令

  首先登录MySQL。

  格式:mysql> set password for 用户名??@localhost ?? = password('新密码');

  例子:mysql> set pass
  1、修改数据库密码
 
  方法1: 用SET PASSWORD命令
 
  首先登录MySQL。
 
  格式:mysql> set password for 用户名??@localhost ?? = password('新密码');
 
  例子:mysql> set password for root??@localhost ?? = password('123');
 
  方法2:用mysqladmin
 
  格式:mysqladmin -u用户名 -p旧密码 password 新密码
 
  例子:mysqladmin -uroot -p123456 password 123
 
  方法3:用UPDATE直接编辑user表
 
  首先登录MySQL。
 
  mysql> use mysql;
 
  mysql> update user set password=password('123') where user='root' and host='localhost';
 
  mysql> flush privileges;
 
  方法4:在忘记root密码的时候
 
  以windows为例
 
  关闭正在运行的MySQL服务。打开DOS窗口,转到mysqlbin目录。输入mysqld --skip-grant-tables 回车。--skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了)Mysql修改密码,转到mysqlbin目录。输入mysql回车,如果成功,将出现MySQL提示符 >。连接权限数据库: use mysql; 。改密码:update user set password=password("123") where user="root";(别忘了最后加分号) 。刷新权限(必须步骤):flush privileges;。退出 quit。注销系统,再进入,使用用户名root和刚才设置的新密码123登录。
 
  2、 MySQL8之前的安全策略
 
  在MySQL 8.0之前,MySQL使用的是validate_password插件检测、验证账号密码强度,保障账号的安全 性。
 
  安装/启用插件方式1:在参数文件my.cnf中添加参数
 
  [mysqld]
  plugin-load-add=validate_password.so
  \#ON/OFF/FORCE/FORCE_PLUS_PERMANENT: 是否使用该插件(及强制/永久强制使用)
  validate-password=FORCE_PLUS_PERMANENT
  说明1: plugin library中的validate_password文件名的后缀名根据平台不同有所差异。 对于Unix和 Unix-like系统而言,它的文件后缀名是.so,对于Windows系统而言,它的文件后缀名是.dll。
 
  说明2: 修改参数后必须重启MySQL服务才能生效。
 
  说明3: 参数FORCE_PLUS_PERMANENT是为了防止插件在MySQL运行时的时候被卸载。当你卸载插 件时就会报错。如下所示。
 
  mysql> SELECT PLUGIN_NAME, PLUGIN_LIBRARY, PLUGIN_STATUS, LOAD_OPTION
  -> FROM INFORMATION_SCHEMA.PLUGINS
  -> WHERE PLUGIN_NAME = 'validate_password';
  +-------------------+----------------------+---------------+----------------------+
  | PLUGIN_NAME | PLUGIN_LIBRARY | PLUGIN_STATUS | LOAD_OPTION |
  +-------------------+----------------------+---------------+----------------------+
  | validate_password | validate_password.so | ACTIVE | FORCE_PLUS_PERMANENT |
  +-------------------+----------------------+---------------+----------------------+
  1 row in set (0.00 sec)
  mysql> UNINSTALL PLUGIN validate_password;
  ERROR 1702 (HY000): Plugin 'validate_password' is force_plus_permanent and can not be
  unloaded
  mysql>
  安装/启用插件方式2:运行时命令安装(推荐)
 
  mysql> INSTALL PLUGIN validate_password SONAME 'validate_password.so';
  Query OK, 0 rows affected, 1 warning (0.11 sec)
  此方法也会注册到元数据,也就是mysql.plugin表中,所以不用担心MySQL重启后插件会失效。
 
  3 、MySQL8的安全策略
 
  MySQL 8.0,引入了服务器组件(Components)这个特性,validate_password插件已用服务器组件重新实 现。8.0.25版本的数据库中,默认自动安装validate_password组件。 未安装插件前,执行如下两个指令 ,执行效果:
 
  mysql> show variables like 'validate_password%';
  Empty set (0.04 sec)
  mysql> SELECT * FROM mysql.component;
  ERROR 1146 (42S02): Table 'mysql.component' doesn't exist
  安装插件后,执行如下两个指令 ,执行效果:
 
  show variables like 'validate_password%';
 
  +--------------------------------------+--------+
  | Variable_name | Value |
  +--------------------------------------+--------+
  | validate_password.check_user_name | ON |
  | validate_password.dictionary_file | |
  | validate_password.length | 8 |
  | validate_password.mixed_case_count | 1 |
  | validate_password.number_count | 1 |
  | validate_password.policy | MEDIUM |
  | validate_password.special_char_count | 1 |
  +--------------------------------------+--------+
  7 rows in set (0.01 sec)
  关于 validate_password 组件对应的系统变量说明:
 
  提示: 组件和插件的默认值可能有所不同。例如,MySQL 5.7. validate_password_check_user_name的默认 值为OFF。
 
  修改安全策略
 
  SET GLOBAL validate_password_policy=LOW;
  SET GLOBAL validate_password_policy=MEDIUM;
  SET GLOBAL validate_password_policy=STRONG;
  SET GLOBAL validate_password_policy=0; # For LOW
  SET GLOBAL validate_password_policy=1; # For MEDIUM
  SET GLOBAL validate_password_policy=2; # For HIGH
  #
  注意,如果是插件的话,SQL为set global validate_password_policy=LOW此外,还可以修改密码中字符的长度set global validate_password_length=1;
 
  4、密码强度测试
 
  如果你创建密码是遇到“Your password does not satisfy the current policy requirements”,可以通过函数组 件去检测密码是否满足条件: 0-100。当评估在100时就是说明使用上了最基本的规则:大写+小写+特殊 字符+数字组成的8位以上密码
 
  mysql> SELECT VALIDATE_PASSWORD_STRENGTH('medium');
  +--------------------------------------+
  | VALIDATE_PASSWORD_STRENGTH('medium') |
  +--------------------------------------+
  | 25 |
  +--------------------------------------+
  1 row in set (0.00 sec)
  mysql> SELECT VALIDATE_PASSWORD_STRENGTH('K354*45jKd5');
  +-------------------------------------------+
  | VALIDATE_PASSWORD_STRENGTH('K354*45jKd5') |
  +-------------------------------------------+
  | 100 |
  +-------------------------------------------+
  1 row in set (0.00 sec)
  注意:如果没有安装validate_password组件或插件的话,那么这个函数永远都返回0。 关于密码复杂度对 应的密码复杂度策略。如下表格所示:
 
  5、卸载插件、组件(了解)
 
  卸载插件
 
  mysql> UNINSTALL PLUGIN validate_password;
  Query OK, 0 rows affected, 1 warning (0.01 sec)
  卸载组件
 
  mysql> UNINSTALL COMPONENT 'file://component_validate_password';
  Query OK, 0 rows affected (0.02 sec)
 

(编辑:航空爱好网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!