ubuntu mysql数据库不能远程连接的问题

总结 在遇到问题自己没有思路德邦情况下,百度真的不如谷歌呢,而且谷歌的英文解释的比百度好多了,各种思路的解决方法,是应有尽有

没事用谷歌搜索,比百度强多了,而且也是可以学习英文的,平时多练习英文,学习英文

 

今天在配置opennebula 3.8的时候,
当执行one start启动时,报不能连接数据库的错误,
但是在shell下输入mysql -uroot -p是可以登录的,
所以问题应该是mysql不允许root用户远程登录的问题,
于是通过输入下面命令:

GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY 'zhidian876521' 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即可!如果不注释掉,
通过netstat可以查看到,306端口只是在IP 127.0.0.1上监听,
所以拒绝了其他IP的访问。
一 MySQL启动
mysql 停止了
sudo /etc/init.d/mysql stop
重启
sudo /etc/init.d/mysql restart

启动还是报错
Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
二 参考谷歌文件在客户端下添加本地地址
Ubuntu MySQL配置文件在/etc/mysql/my.cnf

[client]
password = your_mysql_root_password
port = 3306
host = 127.0.0.1
socket = /var/lib/mysql/mysql.sock


三 客户端又不能登录了
grant all on *.* to root@'%' identified by 'zhidian8976521';
flush privileges;
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

[mysqld]
skip-name-resolve
skip-locking


max_allowed_packet=256M
1、修改mysql配置文件

vi /etc/my.cnf

[mysqld]段加skip-name-resolve

在这个之前要把mysql的远程访问权限打开,或者再加skip-grant-table(不推荐)

五 在新建了用户和密码后终于可以登陆了

posted @ 2015-06-16 16:28  青青子衿zz  阅读(417)  评论(0)    收藏  举报