由于项目需要,需要将数据库从 windows环境下迁移到 ubuntu环境下,迁移之后,发现mysql无法远程访问。
1. 首先,使用户允许远程访问:
service mysql start;
mysql -uroot -p000000;
use mysql;
update user set host='%' where user='root';
2. 设置 任何ip下的用户都能以用户名:root 密码:123456 访问数据库:
GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY '123456' WITH GRANT OPTION;
设置完之后,还是发现无法访问,然后我就纠结了,再windos下,我就是这么设置的啊,可是,在ubuntu上却不行了。
于是,高人指点我 可能是防火墙的原因, 然后我又看禁用防火墙, 结果发现 防火墙本来都已经关闭了,可见不是这个原因。
3. 在网上查看 到 通过端口号 查看访问状态
netstat -an | grep 3306;
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
可见,这里3306端口监视的 只有本机,
于是去改 mysql的配置文件 etc/mysql/my.cnf 发现里面的配置全被注销了, 但是我又再改文件下找到了另一个同名的配置文件,
最后将 bind-address = 127.0.0.1注销掉。 发现我没有权限保存该文件。
也可以不注销,换成指定的ip
于是又使用:
sudo gedit /etc/mysql/..../my.cnf
这样就可以保存修改过的配置文件了。
以上过程之后,mysql可以远程访问了。