问题发生在idea的database插件连接位于wsl中的mysql时,临时需要就在wsl安了一个,没想到居然报了这个错,语焉不详,随便百度几下也没啥结果,半夜也没工夫细究就去docker安装了。
刚才排查了一下,原因是居然忘了配置mysql配置文件,,,,,,,没想到忘了这一步。
mysql版本是5.7.38 。直接sudo apt install mysql-server安装的。这个版本配置文件位于
/etc/mysql/mysql.conf.d/mysqld.cnf打开后编辑bind adress从原来的127.0.0.1改为0.0.0.0 。本来意思是只接受本地连接,现在改为接受全部ip的连接。
其他还可以排查的地方有:
运行
SELECT user,authentication_string,plugin,host FROM mysql.user;
注意我画红圈的两个地方,其中的mysql_native_password在新安装的mysql中可能是sock类似的字眼,表示root无法使用密码登录,
在这个版本的mysql中应该改为mysql_native_password。
注意第二个地方,这个大家应该比较熟悉,本来是localhost,意思是root只能从localhost登录,
update user set host = '%' where user = 'root';
改为百分号,表示root可以从任何地方连接。
本贴是在mysql的root用户可以在本地连接却无法远程连接的情况下的解决思路,主要关注配置远程连接的问题。