今天遇到个奇怪的问题,在没搞清楚原理的情况下,只好先记录下现象。
mysql 无法通过 localhost 访问空密码的(MYSQL_ALLOW_EMPTY_PASSWORD=yes) mysql server
我们通过 docker 启动一个包含空密码的 mysql server
docker run --name mysql -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -p13306:3306 -d mysql:5.7
然后我们通过客户端访问
$ mysql -hlocalhost -uroot -P13306
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
我们可以看到,通过客户端访问 docker 中无密码的 server,是不行的,可是我们是可以通过 127.0.0.1 进行访问
$ mysql -h127.0.0.1 -uroot -P13306
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 2
Server version: 5.7.25 MySQL Community Server (GPL)
同样,如果我们通过 JDBC 访问 mysql,DataSource 填127.0.0.1 或者 localhost,都是无法访问 mysql server 的
如果我们通过 docker 启动一个有密码的 mysql server
docker run --name m