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

使用脚本生成jekyll模板


#!/bin/bash

filename=$(date +"%Y-%m-%d")
header="---\n"
header=$header"layout: post\n"
if [[ $1 ]]
then
    header=$header"title: \""$1"\"\n"
    filename=$filename"-"${1// /-}
else
    header=$header"title:\n"
fi
header=$header"date: "$(date +"%Y-%m-%d %H:%M:%S %:z")"\n"
header=$header"categories: \n- CS\n"
header=$header"tags: \n- Computer Science\n"
header=$header"---"
if [[ $1 ]]
then
    echo -e $header > $filename".markdown"
else
    echo -e $header""
fi