在shell下输入mysql -uroot -p是可以登录的,所以问题应该是mysql不允许root用户远程登录的问题,于是通过输入下面命令:
- GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY 'password' WITH GRANT OPTION;
重启mysql后,发现还是连不上,于是想到是不是防火墙(ufw)或是iptables禁用了3306端口。通过service iptables stop和ufw status,查看发现并不是防火墙或iptables的问题,而且通过netstat可以看到3306端口处于监听状态。
排除了以上因素之后,又google了下,发现问题出现mysql的配置文件my.cnf中,通过如下修改,重启mysql后,成功远程登录,opennebula成功连上mysql数据库。
- sudo vim /etc/mysql/my.cnf
- //找到如下内容,并注释
- bind-address = 127.0.0.1
注释掉 bind-address = 127.0.0.1 后重启mysql(service mysql restart)即可!