博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[mysql]设置Ubuntu上的MySQL可以远程访问
阅读量:5822 次
发布时间:2019-06-18

本文共 1853 字,大约阅读时间需要 6 分钟。

今天在win10上用django连接安装在Ubuntu上的上,始终提示错误(can not connect mysql),但是在Ubuntu上访问是没有问题的。于是开始查找原因:

 

1. 3306端口是不是没有打开?

使用nestat命令查看3306端口状态:

~# netstat -an | grep 3306

tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN

从结果可以看出3306端口只是在IP 127.0.0.1上监听,所以拒绝了其他IP的访问。

解决方法:修改/etc/mysql/my.cnf文件打开文件,找到下面内容:

# Instead of skip-networking the default is now to listen only on

# localhost which is more compatible and is not less secure.
bind-address  = 127.0.0.1

把上面这一行注释掉或者把127.0.0.1换成合适的IP,建议注释掉。

重新启动后,重新使用netstat检测:

~# netstat -an | grep 3306

tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN

 

2. 问题解决了吗?

结果出乎意料,还是不行。

解决方法:原来还需要把用户权限分配各远程用户。

登录到mysql服务器,使用grant命令分配权限

mysql> grant all on database_name.* to  identified by 'user_password';

其中database_name、user_name和user_password根据实际情况设置。

完成后使用mysql命令连接,提示成功,为了确保正确可以再远程登陆测试一下。

 

3 . 本文提供了三种方法来解决授权问题:

  1、改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"。代码如下:

  mysql -u root -pvmwaremysql>use mysql; 

  mysql>update user set host = '%' where user = 'root'; 
  mysql>select host, user from user;

  2、授权法。例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。

  GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

  如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码。

  GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3'IDENTIFIED BY 

  'mypassword' WITH GRANT OPTION;

  我用的第一个方法,刚开始发现不行,在网上查了一下,少执行一个语句 mysql>FLUSH RIVILEGES

  使修改生效,就可以了

  3、另外一种方法:

  在安装mysql的机器上运行:

  1)

d:\mysql\bin\>mysql -h localhost -u root

  //这样应该可以进入MySQL服务器

  2)

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION

  //赋予任何主机访问数据的权限

  3)

mysql>FLUSH PRIVILEGES

  //修改生效

  4)

mysql>EXIT

  //退出MySQL服务器

  这样就可以在其它任何的主机上以root身份登录啦。

  如果经过上面的操作,还不能解决问题,那可能就是服务器的安全设置问题,是不是ip安全策略或防火墙没有开启3306的例外。

转载于:https://www.cnblogs.com/tianhangzhang/p/5455422.html

你可能感兴趣的文章
有理数的小数表示若无限,则必为无限循环的
查看>>
一本书的摘录
查看>>
重排序(转载)
查看>>
python+selenium之字符串切割操作
查看>>
串结构练习——字符串匹配
查看>>
linux下输入密码不回显
查看>>
《构建之法》读书笔记
查看>>
拿下阿里、头条、滴滴的offer后谈谈面试经验---动身前看一看
查看>>
android开发(49) android 使用 CollapsingToolbarLayout ,可折叠的顶部导航栏
查看>>
【ERP】如何在多行数据块中实现仅能勾选唯一的主联系人
查看>>
初试装饰模式-(公司人员)
查看>>
分享个好玩的算法游戏
查看>>
javascript正则表达式入门笔记(完整版)
查看>>
马云谈农村教育,推进并校落实寄宿制,要给孩子们一个不同的境遇
查看>>
Formik官方应用案例解析(四)组件生命周期事件
查看>>
【Win10应用开发】自适应磁贴中的分组
查看>>
学习vi和vim编辑(3):一个简单的文本编辑器(2)
查看>>
一小时了解数据挖掘⑤数据挖掘步骤&常用的聚类、决策树和CRISP-DM概念
查看>>
python之数据库操作(sqlite)
查看>>
Kafka入门教程
查看>>