当前位置: 首页 > Linux

ubuntumariadb无法远程连接的解决方法

时间:2023-04-07 00:26:40 Linux

今天在阿里云服务器上安装了mysql。本以为会很顺利,结果远程连接不上。花了很长时间才解决。我浪费了很多时间。写一篇博文(ma)记录(niang),避免下次入坑设置数据库,可以外网访问。初始化的用户只能在本地登录。添加一个外网访问的数据库,mysql-uroot-p//新建用户createuserusername@localhostidentifiedby'password';//设置外网访问createuserusername@'%'identifiedby'password';//设置权限grantallprivilegesontestdb.*to'username';本来以为这样就可以成功了,谁知道输入命令mysql-h120.79.111.111-P3306-uroot-pERROR2003(HY000):Can'tconnecttoMySQLserveron'120.79.111.111(111)如果你无法连接,开始寻找原因。检查mysqld是否开启,端口监听。netstat-nltp这里的mysqld端口是3306,0.0.0.0是正确的。如果你的不是0.0.0.0,而是127.0.0.1,需要修改/etc/mysql/mariadb.conf.d/50-server.cnf,修改ubuntu的配置文件在/etc/mysql/mariadb.conf中。d/50-server.cnf,不知道为什么要放在这样的地方,vim/etc/mysql/mariadb.conf.d/50-server.cnf把bind-address=127.0.0.1改成bind-address=0.0.0.0或者直接注释掉restartservice/etc/init.d/mysqlrestart改成0.0.0.0,会像上图,但是如果注释掉,就会变成这样这个,这是正常的是的,0.0.0.0是所有IPv4网络,:::表示所有IPv6ip访问,没问题检查ip是否能ping通3306是否能访问ping120.79.111.111telnet120.79.111.1113306问题是coming,3306isunreachable检查防火墙sudoiptables-L-n这里没问题,3306端口已经打开,如果你的3306没有打开,输入命令iptables-AINPUT-ptcp--dport3306-jACCEPT就可以了,想了半天一时间,我想到了会不会是服务商的防火墙规则?确实是服务上防火墙的问题。赶紧添加一条规则mysql-h120.79.111.111-uroot-p成功!!!