如何查看mysql数据库时区

上次帮同事调试网站时,用户反馈显示显示时间与实际时间相差八个小时。
我打开电脑,在服务器上输入一些命令,问题立即解决。
你看,有时候这样的小事真的很有趣。

打开服务器的命令行窗口,输入“mysql -u root -p”并按Enter键。
系统提示我输入密码,于是我敲击键盘登录。

在MySQL命令行界面,输入“select now();”并按 Enter 键。
屏幕上显示的时间是凌晨3 点1 5 分。
我抬头一看,窗外天还黑着,不知道怎么这么早。
然后输入“将变量显示为‘%time_zone%’;”并按 Enter 键。
系统返回了一堆信息,最后是“time_zone = SYSTEM”。

等一下,“SYSTEM”是什么意思?我轻松地检查了服务器上的系统时区。
输入“日期+”%Z%z””并按Enter键。
它显示“GMT+08 00”。
事实证明MySQL确实使用了系统时区。
这很有趣,有时候问题就出在这样的细节上。

我突然想到,如果我直接把MySQL时区改成UTC,是不是可以省去检查系统时区的麻烦呢?但这是否仍然会让用户在看时间时感到不舒服呢?

怎么查看已安装的mysql用户名密码?

上周有朋友问我忘记了 MySQL 密码怎么办。
我直接向他投诉了这个废话——为什么安装时选择默认root,没有密码?那么现在安装时输入的密码都是加密的,无法直接查看。

但这并非完全不可能。
想一想,MySQL的密码加密是MD5 虽然反之无法解密,但可以找到允许登录的用户名和主机。
您只需运行 select user,host from mysql.user;直接在命令行上。
你查到的东西一定是没有密码的。
这是出于安全原因,防止其他人无意中找到密码后登录。

如果您确实想更改密码,请使用命令设置密码为 'root'@'localhost' = password('newpassword');。
请记住将“root”和“localhost”替换为您自己的用户名和主机名,“newpassword”当然是您的新密码。
该命令将重新生成加密密码并将其存储在数据库中。

我之前在2 02 3 年做项目的时候也遇到过类似的情况,然后数据库就放在了云服务器上。
幸好有备份,不然就得重新安装了。
因此,您需要考虑备份、密码和数据库文件以确保安全。
不要轻易设置密码并定期更改。
不要将日志文件放置在随机位置,因为它们很容易被窥探者访问。

无论如何,请记住这一点。
如果您忘记了密码,您将无法直接看到它,但您可以通过 set password 命令重置它。
您需要更加注意安全。

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

直奔底线:MySQL 密码策略依赖于 validate_password 和 default_password_lifetime 插件。

我们先来说一下validate_password。
检查是否应该连接它: sql 显示额外内容;
如果没有,请声明: sql 安装插件 validate_password SONAME 'validate_password.so';
该策略分为三个层次:
LOW:想要什么都丢,只要长度好
MEDIUM:建议使用此文件,应包含数字、大小写字母和特殊符号。

STRONG:大于MEDIUM,不能包含用户名或常用词
直接使用设置命令: sql 设置全局 validate_password.policy=MEDIUM; 设置全局 validate_password.length=8 ; 设置全局 validate_password.number_count=1 ; 设置全局 validate_password.special_char_count=1 ; SET GLOBAL validate_password.mixed_case_count=1 ;
新用户或密码更改将立即生效。

我们来谈谈default_password_lifetime。
MySQL 5 .7 .8 及以上版本可以这样设置全局超时: sql SET GLOBAL default_password_lifetime=9 0;
0 表示永远不会过期,不要这样做。

强制更改特定用户的密码: sql CHANGE user 'user'@'host' PASSWORD;
下次登录时系统会提示您更改密码。

或者设置固定的过期天数: sql 更改密码过期间隔 'user'@'host';
服务帐户的特殊待遇: sql ALTER USER 'service_user'@'localhost' PASSWORD NEVER;
但是您需要确保此密码非常强大并且权限已锁定。

我忘了提及您需要超级权限才能更改全局设置。
迁移前必须对生产环境进行评估,以免脚本无法正常链接。

如果密码过期,会直接报错: sql 错误 1 8 2 0:您的密码已过期。

更改密码命令: sql ALTER user 'user'@'host' IDENTIFIED BY 'NewPassword1 2 3 !';
不要忘记刷新权限。

为服务帐户选择“从不”?密码必须是3 2 位随机,权限必须锁定并定期检查。

这样做有什么好处?弱密码和旧密码将立即销毁。
PCI 和 GDPR 等认证要求您这样做。

具体如何分享呢?对于普通用户,MEDIUM+9 0 天;对于管理员,STRONG+6 0 天;对于服务帐户,STRONG+1 8 0 天;或者 NEVER(权限被阻止)。

最后提醒:你应该有一个监控脚本来提前警告你,并且你应该保留一个备份帐户。

你自己看看。

mysql用户密码修改