问题描述:有业务反馈称数据库上的用户有的可以登录,有的不能登入,是不是集群有问题。如何会有如此奇怪的问题,是不是最大联接数达到限制了。
环境:keepalived+mysql5.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;
© 版权声明
本站下载的源码均来自公开网络收集转发二次开发而来,
若侵犯了您的合法权益,请来信通知我们1413333033@qq.com,
我们会及时删除,给您带来的不便,我们深表歉意。
下载用户仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,访问及下载者下载默认同意本站声明的免责申明,请合理使用切勿商用。
THE END
暂无评论内容