docker中安装的mysql无法远程连接问题解决
背景:
在ubuntu1804的docker中安装了mysql,版本是5.7.34。因为有复杂的数据要插入到数据库中,所以从宿主机通过pycharm和DBeaver连接,但是一直报错:
Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.
解决方法分为两步走
第一步:
修改mysql配置文件中的bind_address
vim /etc/mysql/mysql.conf.d/mysqld.cnf
数据库不能远程访问多半是因为绑定了本地地址127.0.0.1.
第二步:
开启用户的远程访问权限。以root用户为例。如果用户没有远程访问权限则即使数据库能远程访问但因为用户权限限制也会失败。
开启远程访问权限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password';
强制刷新权限:
flush privileges;
完成这两步就可以远程访问到docker中的数据库了