美文网首页
Mysql相关问题

Mysql相关问题

作者: 小白正在飞 | 来源:发表于2018-04-24 17:34 被阅读0次

1.Mysql密码过期问题处理

跳过授权表

  1. /etc/init.d/mysqld stop
  2. mysqld_safe --skip-grant-tables &(或者修改配置文件 [mysqld] skip grant tables)
  3. 登录mysql(无密码)
  4. update mysql.user set authentication_string=password('123456') where user='root' and Host = '%';(此处修改后localhost依然无法登录修改Host='localhost')
  5. flush privileges
  6. 登录后
  • [ ] 本机mysql过期 set password = password('123456');
  • [ ] 服务器mysql过期,需要修改指定用户的password 以root@% 为例 > set password for 'root'@'%' = password('123456');

从MySQL 5.7.4版开始,用户的密码过期时间这个特性得以改进,可以通过一个<mark style="box-sizing: border-box;">全局变量default_password_lifetime来设置密码过期的策略</mark>, 此全局变量可以设置一个全局的自动密码过期策略。

2.Mysql版本新增知识和内容

在MySQL5.7的配置文件中设置一个默认值,这会使得所有MySQL用户的密码过期时间都为90天,MySQL会从启动时开始计算时间。 例如在my.cnf里添加:

[mysqld]
default_password_lifetime=90

这会使得所有MySQL用户的密码过期时间都为90天,MySQL会从启动时开始计算时间。 如果要设置密码永不过期的全局策略,可以设置default_password_lifetime=0,或者在命令行设置:

mysql> SET GLOBAL default_password_lifetime = 0;
Query OK, 0 rows affected (0.00 sec)

从MySQL版本5.6.6版本起,添加了password_expired功能,它允许设置用户的过期时间

mysql> use mysql;
mysql> alter user root@'localhost' password expire;         
Query OK, 0 rows affected (0.23 sec)
在用户未设置新密码之前不能运行任何查询语句,而且会得到如下错误消息提示:
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
执行完后看到密码改动时间
mysql> alter user root@localhost identified by 'fangcang';
Query OK, 0 rows affected (0.00 sec)

mysql> select user,host,password_last_changed,password_expired from user; 
+-----------+-----------+-----------------------+------------------+
| user      | host      | password_last_changed | password_expired |
+-----------+-----------+-----------------------+------------------+
| root      | localhost | 2018-04-23 11:04:26   | N                |
| mysql.sys | localhost | 2017-10-27 11:22:50   | N                |
| root      | %         | 2017-10-27 14:18:02   | N                |
+-----------+-----------+-----------------------+------------------+
3 rows in set (0.00 sec)

在MySQL 5.7.8版开始用户管理方面添加了锁定/解锁用户账户的新特性

mysql> alter user mdba@localhost account lock;
Query OK, 0 rows affected (0.04 sec)

重新登录发现被拒绝:
[root@localhost ~]# mysql -u mdba -p
Enter password:
ERROR 3118 (HY000): Access denied for user 'mdba'@'localhost'. Account is locked.

解锁后恢复正常:

mysql> alter user mdba@localhost account unlock;
Query OK, 0 rows affected (0.03 sec)

3.网上搜索到的坑

1、以下这种方式不能解决密码过期问题
update mysql.user set authentication_string=password('123456') where user='root' and Host = '%';

2、修改password_last_changed不能解决密码过期问题。

3、mysql早前的版本user表有password字段,5.7为authentication_string。

4、不需要重启mysql服务器。

5、root@localhost和root@%不是同一个用户。

查看用户信息的sql如下

select host,user,password_last_changed from mysql.user;

相关文章

  • Mysql相关问题

    1.Mysql密码过期问题处理 跳过授权表 /etc/init.d/mysqld stop mysqld_safe...

  • Mysql相关问题

    问题1:MySQL Error 1153 - Got a packet bigger than'max_allow...

  • MySQL 相关问题

    一.MySQL远程连接 有时候在进行MySQL远程连接时,需要开启远程访问权限。可以通过查询mysql.user表...

  • Mysql相关问题

    1.Mysql锁 行级锁又分共享锁和排他锁。 共享锁:名词解释:共享锁又叫做读锁,所有的事务只能对其进行读操作不能...

  • MySQL相关问题

    MySQL相关问题 以下笔记来自于该视频:https://www.bilibili.com/video/BV1KW...

  • mysql的相关问题

    总觉得mysql是很简单的东西,这次配置vps算领教了,这几天mysql一直卡住不动。 重新安装mysql解决不了...

  • MySQL的相关问题

    绿色版的MySQL经常发生不需要密码或者任意密码登陆的问题 开启关闭MySQL服务开启net start mysq...

  • 「MySQL」文章收藏

    一、MySQL系统管理相关文章 Mysql5.7修改默认密码 MySQL中文乱码问题 MySQL远程连接 二、数据...

  • MySQL复制线程长时间Opening tables

    最近经常有人问我 MySQL Query Cache 相关的问题,就整理一点 MySQL Query Cache ...

  • MySQL相关

    收集一些window下MySQL相关的资料。 1.可视化工具无法连接 MySQL 8.0 的问题 MySQL 8....

网友评论

      本文标题:Mysql相关问题

      本文链接:https://www.haomeiwen.com/subject/wvgjlftx.html