mysql5.7密码过期怎么解决

今天在小区门口的便利店,我看到一个小女孩用手机扫二维码付款。
我突然想到现在这种支付方式这么流行,真是太方便了。
我还记得第一次用手机支付的情景。
事情发生在2 01 5 年的一家书店,当时我在手机上安装了支付宝,输入密码,扫码购买了这本书。
现在想想,时间过得真快。
等等,还有一件事。
我需要提醒我的朋友他们可能会遇到的随机密码过期问题。

mysql无法以root身份登录怎么解决

嘿,我多次遇到这个MySQL登录问题。
说起来,我第一次接触到这个是在2 01 2 年,当时我还在运维方面,而且当时还在使用MySQL 5 .5
首先,最常见的问题是密码。
想想那些从来没有犯过大小写错误,或者密码过期后无法及时更改的人?这可能会导致您无法打开它。
就在那时,他绊倒了。
用户名是root,密码是root。
发生的事情是大写失败。
我气得直跺脚。

解决方案很简单。
使用命令行工具,如mysqladmin,mysqladmin -uroot -p回车,然后回车。
如果密码错误,我会告诉你密码错误。
此时您需要重置您的密码。

要重置密码,必须先停止MySQL服务,systemctl stop mysqld或者停止mysqld服务。
然后,使用 mysqld_save --skip-donat-tables & 启动 MySQL。
此命令将发送捐赠表并允许您打开和更改密码。

登录后,执行以下命令: UPDATE mysql.user SETauthentication_string=password('your_new_password') WHERE User='root',然后执行 FLO PRIVILEGES。
这将更改密码。

另外,您需要停止MySQL服务并删除tables模块,这样捐赠表才能正常工作。

然后,您应该检查MySQL服务的状态,看看它是否真的启动了。
使用 systemctl mysqld status 或 mysqld status 函数检查状态。
如果还没有启动,使用systemctl启动mysqld或者启动mysqld服务。
还要检查墙壁设置。
有时系统防火墙会阻止MySQL端口(3 3 06 )。
您可以使用 IPtables -L -n 检查防火墙规则。
如果发现3 3 06 端口被屏蔽,需要添加规则允许。

此外,授权表可能被损坏,这也可能导致登录失败。
您必须先备份mysql数据库,然后使用mysqldump -uroot mysql > mysql_backup.sql。
然后使用mysqlcheck -uroot --repair mysql用户修复权限表。

应考虑安全策略限制。
例如,SELinux 可以限制对 MySQL 的访问。
您可以暂时禁用SELinux,将其强制为0,然后再打开。
如果您是初学者,则需要调整 SELinux 配置以允许 MySQL 访问。

最后还有一些预防措施,比如使用强密码、限制远程root访问、定期备份、监控服务状态等,这些都是防止类似问题再次发生的措施。

一般情况下MySQL登录问题有很多,但只要一步步检查,通常都能解决。
小心工作时,不要意外更改或丢失数据。

Mysql修改用户密码强制策略_mysql密码复杂度与过期时间设置

说实话,刚开始更改MySQL密码策略是非常困难的。
不过,如果把这样的列表中的步骤分解出来,会比直接阅读官方文档更容易理解。
我将添加我自己的陷阱经验。
也许有点极端,但非常实用。

首先我们来谈谈authenticate_password插件。
之前在项目上用过5 .7 版本,发现新用户密码可以随意填写“1 2 3 4 5 6 ”。
我当时很困惑。
我快速执行了这些命令: 广场 安装插件 SONAME '验证密码.so'; 全局authenticator_password.policy=MEDIUM; 全局authenticator_password.length=1 0; SET GLOBAL validate_password.number_count=2 ;
关键是这些参数必须在实际环境中调整。
比如我们的系统中,用户登录的频率很高,所以我将number_number设置为2 ,否则一直会报“密码太简单”的错误。
有趣的是,混合大小写参数(mixed_case_number)特别容易被忽略。
我的一个同事调整了一段时间后发现这个设置太紧了。

我建议使用 default_password_lifetime 9 0 天。
我们的一个客户是金融行业的,合规要求非常严格,所以我们最终把它定为6 0天。
但有一个问题你应该注意:更改此参数后,所有用户下次登录时都会提示更改密码。
如果自动化脚本跟不上,运维人员可能会集体反抗你。
我因此受到侮辱。

还有那个ALTER USER PASSWORDEXPIRENEVER,这个东西要小心使用。
这就是我们设置消息队列的运维账号的方法。
密码是一个 3 2 位随机字符串,足以用作加密密钥。
但后来的审计显示该帐户可以访问整个数据库,从而引发了灾难。
需要明确的是,在可以使用随机密码和最小权限的地方,请尽量不要使用它们。
例如,我们将其更改为1 8 0天+ STRONG策略,然后授予该帐户访问邮件列表的权限。
最让人头疼的是用户不配合。
进入测试环境也是同样的道理我遇到过开发团队使用“admin”密码,但输出被策略阻止的情况。
最后,我们制作了一个Excel表,列出了每个人的旧密码+新密码,并在午夜发送了电子邮件通知。
我记得更新数据大概花了3 天的时间,不过终于达标了。

现在在我们的新系统上线之前,我们会创建一个“密码策略模拟”,以便大家提前适应,增加复杂性。
例如,在一次特定测试中,一名前端人员将密码设置为“1 2 3 4 5 6 7 8 ”,但立即停下来并当场将其更改为“Frontend2 02 3 !Q”。
虽然这种强制一开始可能会很困难,但从长远来看绝对是值得的。

最后,一个小知识:在 MySQL 8 .0 版本中,这些策略可以直接在 CREATE USER 中设置,例如: 广场 使用“SecurePass1 2 3 !”创建指定用户'test'@'localhost'。
密码将在 6 0 天后过期 强大的密码策略;
在一级修复它,避免您以后更改它。
但请记住,您必须按照上述步骤从旧版本迁移。

PHP无法连接MySQL8.0数据库问题处理 报错如下:SQLSTATE[HY000] [2054]

哎呀,PHP与MySQL8 .0的连接问题真是让人头疼。
上周一位客户问我这个问题。
我也是刚刚接触到的,所以详细的给大家讲一下。

首先,错误信息“SQLSTATE[HY000][2 05 4 ]服务器请求客户端未知的身份验证方法”是因为MySQL8 .0开始使用新的密码身份验证插件caching_sha2 _password,而PHP5 .6 及之前的版本不支持该插件。

应该做什么?解决方法有两种:
方法一、升级PHP版本。
如果你的 PHP 是 7 .2 .8 或 7 .1 .2 0 那么恭喜你,这些 PHP 版本内置了对 caching_sha2 _password 的支持,并且可以直接连接 MySQL8 .0。
如果您仍在使用 PHP7 .0.3 1 或更早版本,您应该检查您的 PHP 版本是否支持此扩展。
您可以通过运行 phpinfo() 函数来检查它。

方法二、手动配置MySQL。
这个就比较麻烦一点了。
您必须向 MySQL 配置文件 my.cnf 添加配置行,以将默认身份验证扩展更改回 mysql_native_password。
具体操作如下:
1 .编辑 my.cnf 文件并添加以下行: 默认身份验证插件=mysql_native_password 2 .登录MySQL并运行以下命令更改验证插件: 更改用户 'xxxxx'@'%' 使用 mysql_native_password FROM 'new_password' 进行识别; 3 . 重新启动数据库服务。

虽然这个 mysql_native_password 插件比 caching_sha2 _password 更旧并且不如后者安全,但它至少可以解决您的问题。
不过,我仍然建议您升级 PHP 版本并使用最新的 caching_sha2 _password 插件。
毕竟安全更重要。

MySQL 8 .0的密码政策听起来也很严格。
密码过期、密码历史检测、双重密码机制都是为了提高安全性。
无论如何,这取决于你,安全永远是第一位的。
我还在思考这个问题,以后可能还要不断更新知识库。