问题描述:有业务反馈称数据库上的用户有的可以登陆,有的不能登录,是不是集群有问题。怎么会有这么奇怪的问题,是不是最大连接数达到限制了。

环境:keepalived+mysql 5.7.37主从

登录数据库发现连接正常,测试登录,确实存在部分用户可以登录,部分用户登录失败的问题,主库IP以及VIP连接失败,但是从库却可以登录。在数据库上新建一个用户也不影响连接。

VIP连接失败

主库连接失败

从库连接成功

尝试修改用户密码,重新连接,还是同样

mysql> alter user psd_platform@'%' identified with mysql_native_password by 'Longshine#1';
Query OK, 0 rows affected (0.00 sec) mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

重建用户 测试连接,还是连接失败。但是新建一个用户在分配同样的权限就没有问题

mysql> drop user psd_platform@'%';
Query OK, 0 rows affected (0.01 sec) mysql> create user psd_platform@'%' identified by 'Longshine#1' with max_user_connections 140;
Query OK, 0 rows affected (0.00 sec) mysql> grant all privileges on psd_platform.* to psd_platform@'%';
Query OK, 0 rows affected (0.00 sec) mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

查看此时的用户状态,显示账号没有锁定

mysql> select * from mysql.user where user='psd_platform'\G
*************************** 1. row ***************************
Host: %
User: psd_platform
Select_priv: N
Insert_priv: N
Update_priv: N
Delete_priv: N
Create_priv: N
Drop_priv: N
Reload_priv: N
Shutdown_priv: N
Process_priv: N
File_priv: N
Grant_priv: N
References_priv: N
Index_priv: N
Alter_priv: N
Show_db_priv: N
Super_priv: N
Create_tmp_table_priv: N
Lock_tables_priv: N
Execute_priv: N
Repl_slave_priv: N
Repl_client_priv: N
Create_view_priv: N
Show_view_priv: N
Create_routine_priv: N
Alter_routine_priv: N
Create_user_priv: N
Event_priv: N
Trigger_priv: N
Create_tablespace_priv: N
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 140
plugin: mysql_native_password
authentication_string: *EC5019C6AE0F5C827BEEA4193D621F2076844729
password_expired: N
password_last_changed: 2022-07-13 14:56:18
password_lifetime: NULL
account_locked: N
1 row in set (0.00 sec)

突然想起来,为什么主库登录和VIP登陆失败,但是备库可以登录成功,因为所有的连接都是通过VIP去连接主库的。有可能这个用户输入被主库拉黑了。之前部署过插件,connection_control_failed_login_attempts插件,密码输入错误延迟登录的插件,当你输入错误超过几次就会延迟你用户的登录。

查看最小的延迟登陆时间达到了半个小时,所以在半个小时之后,该用户自动解锁,但是这种插件方式并不会让用户以account_lock的方式锁定用户,所以在查看mysql.user表的时候,看不出来是否被锁定。

查看相关记录表,连接输错的连接信息 information_schema.connection_control_failed_login_attempts表会记录发起连接的IP信息

有几个用户都存在问题,判断业务端在发起数据库连接的密码没有写对,被插件延迟登陆,最后给插件暂时卸载

mysql> uninstall plugin connection_control;

mysql> uninstall plugin connection_control_failed_login_attempts;

mysql主库用户密码登陆失败从库正常的更多相关文章

  1. aud$定位错误用户密码登陆数据库的具体信息

    环境:Oracle 11.2.0.3 客户端使用错误的用户密码登陆数据库 查询最近1天由于密码错误登陆失败的信息 查询当前审计中有哪些returncode值 1. 客户端使用错误的用户密码登陆数据库 ...

  2. 详解MySQL的用户密码过期功能

    这篇文章主要为大家详细介绍了MySQL的用户密码过期功能的相关资料,需要的朋友可以参考下   Payment Card Industry,即支付卡行业,PCI行业表示借记卡.信用卡.预付卡.电子钱包. ...

  3. MySQL的用户密码过期功能详解

    MySQL的用户密码过期功能详解 作者:chszs,未经博主允许不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs 先说明两个术语. Payment Ca ...

  4. MySQL的用户密码过期功能

    Payment Card Industry,即支付卡行业,PCI行业表示借记卡.信用卡.预付卡.电子钱包.ATM和POS卡及相关的业务. PCI DSS,即PCI数据安全标准(Payment Card ...

  5. 无法连接到服务器,用户xxx登陆失败"

    无法连接到服务器,用户xxx登陆失败" 该错误产生的原因是由于SQL Server使用了"仅 Windows"的身份验证方式, 因此用户无法使用SQL Server的登录 ...

  6. Mysql忘记用户密码的解决办法

    1.1 忘记用户密码的解决办法 普通用户,直接用root超级管理员登录进去修改密码就可以了,但是如果root密码丢失了,怎么办呢? 1.1.1 msyqld_saft方式找回密码 停止mysql:se ...

  7. sql点滴43—mysql允许用户远程登陆

     方法1 局域网连接mysql报错: ERROR 1130: Host '192.168.0.220' is not allowed to connect to this MySQL server 解 ...

  8. [mysql]忘记用户密码或者误删用户账号

    修改你的my.ini或my.cnf文件,在 [mysqld] 节下加入下面一行 skip-grant-tables 然后保存并重启 MySQL 服务. /etc/init.d/mysql restar ...

  9. mysql修改用户密码

    修改自己的密码(root用户,其它用户应该也差不多) 方法一: [root@localhost /]# mysqladmin -u root -p password "root" ...

随机推荐

  1. 在centos 7 中 conda 环境和Python2.7 中安装远程jupyter

    折腾了半天,为了能够方便学习TensorFlow,搞了远程的jupyter,方便在本地使用它,今天填了不少坑. 装完后截图: 下面是一些步骤: 检查 Python 环境 CentOS 7.2 中默认集 ...

  2. python爬取豆瓣电影Top250(附完整源代码)

    初学爬虫,学习一下三方库的使用以及简单静态网页的分析.就跟着视频写了一个爬取豆瓣Top250排行榜的爬虫. 网页分析 我个人感觉写爬虫最重要的就是分析网页,找到网页的规律,找到自己需要内容所在的地方, ...

  3. Spring 源码(10)Spring Bean 的创建过程(1)

    Spring Bean的创建刚开始进行了一些准备工作,比如转换服务的初始化,占位符解析器的初始化,BeanDefinition元数据的冻结等操作,都是为了在创建Bean的过程中保证Bean的正确的创建 ...

  4. navicat软件、 python操作MySQL

    查询关键字之having过滤 having与where的功能是一模一样的 都是对数据进行筛选 where用在分组之前的筛选 havng用在分组之后的筛选 为了更好的区分 所以将where说成筛选 ha ...

  5. 出现bash: ifconfig:command not found的解决办法,即安装ifconfig命令(亲测有效)

    初装centos 7时,运行config报 command not found 错误, ifconfig命令是设置或显示网络接口的程序,可以显示出我们机器的网卡信息,可是有些时候最小化安装CentOS ...

  6. C# 蓄水池抽样

    蓄水池采样算法解决的是在给定但长度未知的大数据集中,随机等概率抽取一个数据.如果知道数据的长度,可以用随机数rand()%n得到一个确切的随机位置,或者分块取值来构造随机,那么该位置的对象就是所求的对 ...

  7. vsftp 详解

    1.默认配置: 1>允许匿名用户和本地用户登陆.     anonymous_enable=YES     local_enable=YES2>匿名用户使用的登陆名为ftp或anonymo ...

  8. 一个恢复CSI挂载信息的解决方法

    一个恢复CSI挂载信息的解决方法 问题描述 之前有做过一个华为OBS 的CSI插件,其基本运作原理如下图所示.CSI插件Pod挂载了主机的/var/lib/kubelet/pods目录,当创建挂载Pv ...

  9. VS Code - Vim 插件自动切换输入法

    前言: 在使用 Linux 的过程中,vim 是一个不错的编辑器,以至于多数人将其用成了习惯,在没有 vim 的环境下还是习惯用 vim 的快捷键来编辑文本.所以便有开发者们为众多的 IDE 和文本编 ...

  10. GitHub 简介

    用详细的图文对GitHub进行简单的介绍. git是一个版本控制工具,github是一个用git做版本控制的项目托管平台. 主页介绍: overview:总览.相当于个人主页. repositorie ...