MySQL localhost禁止访问

遇到这个问题先确认是否创建了账户


use mysql;
select Host,User from user;

我遇到这个问题是在Centos+Mysql 5.6

我创建了一个example_user@%的账户,但使用mysql -u example_user -h 127.0.0.1 -p无法登录,返回信息显示 Access denied for user ‘example_user’@localhost ,我就一直觉得很奇怪,我用的host明明是127.0.0.1,为什么变成localhost了,而且%应该是匹配所有host才对。

后来经过多次测试,发现在这种环境下,127.0.0.1会被识别为localhost,而且%并不会匹配到localhost,因此,我们只需要创建localhost作为host的账户即可


grant all on example_db.* on "example_user"@"localhost" identified by "your password";
flush privileges;

如何远程连接wamp环境下的MySQL

开放端口会导致安全问题,因此,请保证只用于debug或开发环境

相信各位都知道,MySQL远程访问需要新建账户,例如


grant all on example_db.* on "example_user"@"%" identified by "your password";
flush privileges;

所以导致无法访问的罪魁祸首不是mysql,是windows防火墙,我们需要使用下列操作步骤来开放3306端口。

搜索->防火墙->高级安全 Windows Defender 防火墙->入站规则

新建规则->端口->放行3306

MySQL导致关机时间长(Waiting for table flush)

首先说结论:双系统时区同步( timedatectl set-local-rtc 1 )导致

一直以来我这个笔记本在关机的时候都有些慢,本来也没想去管它(因为以前也试图跟开关机的错误作斗争,但我没赢过)

但是随着我的时间越来越紧,也没耐心等它慢慢关机了,就稍微做了个笔记,去搜了一下,大体上是说,mysql在清理垃圾数据,而时区设置导致mysql认为有来自未来(8小时之后)的数据,为了保持数据缓存干净,所以一直在等待,在网络越来越好的情况下,双系统时间同步对我也没那么重要了,所以把这个设置调回了默认值,然后重启系统,好了

后记:这篇记录太早了,才发现没发布出去,大部分都是后来补写的,有没太写清楚的地方,请见谅。