之前
之前在《Ubuntu 安装Node.js、Express和MySQL》介绍了安装,在《 ERROR 1130 (HY000): Host ‘113.57.150.82’ is not allowed to connect to this MySQL server》介绍了远程连接mysql。但是现在在阿里云的Ubuntu16.04环境下发现远程连接不行。
远程连接报错
终端:
使用mysql -h ip -u root -p
远程连接报错ERROR 2003 (HY000): Can't connect to MySQL server on '39.108.121.5' (61)
。
node.js代码
在node.js后端代码里面报错:connect ECONNREFUSED ip:3306
。
错误原因
其实在之类就发现上面的两篇文章里面介绍的远程连接的方法:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
还不能解决问题。
后来看了mysql的配置文件,发现配置文件有问题。
解决
第一步:添加安全组规则
出方向和入防线都是这么配置:
第二步:修改mysql配置文件
使用vim打开/etc/mysql/mysql.conf.d/mysqld.cnf
。发现bind-address = 127.0.0.1
。这里我们注释掉这一行,然后重启mysql就好了/etc/init.d/mysql restart
。