mysql5.7 怎么开启远程访问

2016-12-09 14:25:45 +08:00
 skyboy

在 ubuntu16 上用 mysql5.7,按网上的做法,不行啊。 mysql -uroot -p123

GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY '123' WITH GRANT OPTION; FLUSH PRIVILEGES;

sudo /etc/mysql/my.cnf;

注释掉这行 #bind-address = 127.0.0.1 ,但是我打开 my.cnf 根本没有这行内容 。但是我也加上了这行#注释的内容啊。

flush privileges;

service mysql restart;

service iptables stop; //ubuntu 上根本提示说找不到 iptables 服务

mysql -h xxx.110.87.xx -u root -p123 出错: Can't connect to MySQL server on xxx.110.87.xx;

2924 次点击
所在节点    问与答
8 条回复
kxjhlele
2016-12-09 14:38:42 +08:00
root 账号有限制吧,只能本地登录,估计设置 root 可以用 ::1 登录就好了
shiji
2016-12-09 14:39:40 +08:00
找教程复制粘贴修改执行不是一条长久之计。。。

你要告诉大家是按照哪个教程安装的?安装的方法多种多样啊。

sudo netstat -atnp 执行一下,看看 MySQL 目前监听的 socket 地址是什么

另外我记得 Ubuntu 默认的防火墙是 ufw ,(实质上也是基于 iptables 的)

sudo ufw status 查看当前规则
skyboy
2016-12-09 14:59:25 +08:00
@shiji ufw 我给他关掉了, sudo ufw disable 为啥还不行。
skyboy
2016-12-09 14:59:53 +08:00
@kxjhlele 为啥网上的教程上都是改 root 这个账号。
shiji
2016-12-09 15:12:39 +08:00
@kxjhlele root 没有限制
shiny
2016-12-09 15:22:33 +08:00
看看是不是只监听到 127.0.0.1 了
shiji
2016-12-09 15:23:16 +08:00
@skyboy 你好歹把信息提供全面了再问为啥啊。执行 sudo netstat -atnp | grep 3306 看看有没有结果,如果有, IP 是 0.0.0.0 还是 127.0.0.1 还是别的?

root 账号没有限制,即使限制了本地登陆,结果应该是 ERROR 1045 (28000): Access denied for user... 这样的,
你出现的这个错误是根本连接不上数据库,更何况验证密码 /权限.

另外 root 账号不建议开启远程,如果是用于管理,最好配置数据库的 SSL 证书加密通信。如果是用于让别的服务器访问你这台机器的数据库,不要用 root ,要遵循一个应用,一个用户,一个数据库。
cxshun
2016-12-09 15:25:10 +08:00
#bind-address = 127.0.0.1 这行是要去掉#注释的啊,并且把 127.0.0.1 改为 0.0.0.0 表示允许所有 IP 都可以访问,否则只有本地能访问。

但建议 root 不要开放,可以另外开一个用户去连接。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/326428

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX