「学习笔记」无法远程访问 MySQL 碰到的坑

栏目: 数据库 · 发布时间: 5年前

内容简介:平台:ubutunmysql版本:5.7 (重要)

「学习笔记」无法远程访问  <a href='https://www.codercto.com/topics/18746.html'>MySQL</a>  碰到的坑

平台:ubutun

mysql版本:5.7 (重要)

最近写 Java 的Demo项目碰巧需要开虚拟机测试。麻溜的装了个 Mysql ,然后准备开开心心的用Navicat连库开撸,没想到,居然无法远程访问?WTF...之前用centos可是很愉快的啊。然后居然连续碰到了很多坑。

写一篇笔记,记录下踩坑的过程,我的情况不一定适用于所有人,请注意文章最开头的系统和Mysql版本。

首先,本地登录root完全没问题。

mysql -uroot -p

然后在Windows用Navicat登录Mysql的时候居然失败了, "Can't connect to MySQL server on 'localhost' (10061)" ?还不给详细的报错信息。

第一个想到的是尝试在数据表中打开访问的权限,以下一顿操作。

操作一:修改表访问权限

参考链接:https://www.cnblogs.com/cnblogsfans/archive/2009/09/21/1570942.html

mysql默认root用户没有密码,输入mysql –u root 进入mysql

1、初始化root密码

mysql>use mysql

进入mysql数据库

mysql>update user set password=PASSWORD(‘123456’) where User='root';

2、允许mysql远程访问,可以使用以下三种方式:

3、改表。

mysql -u root –p
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;

b、授权。

例如,你想root使用123456从任何主机连接到mysql服务器。

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

如果你想允许用户jack从ip为10.10.50.127的主机连接到mysql服务器,并使用654321作为密码

mysql>GRANT ALL PRIVILEGES ON *.* TO 'jack'@’10.10.50.127’ IDENTIFIED BY '654321' WITH GRANT OPTION;
mysql>FLUSH RIVILEGES

c、在安装mysql的机器上运行:

//进入<a href="https://www.miaoroom.com/tag/mysql" data-toggle="tooltip" title="查看更多关于 MySQL 的文章" target="_blank">MySQL</a>服务器
d:\mysql\bin\>mysql -h localhost -u root
//赋予任何主机访问数据的权限
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION
//使修改生效
mysql>FLUSH PRIVILEGES
//退出<a href="https://www.miaoroom.com/tag/mysql" data-toggle="tooltip" title="查看更多关于 MySQL 的文章" target="_blank">MySQL</a>服务器
mysql>EXIT

但是一圈下来,没卵用,继续找解决方案。这时候突发奇想:

mysql -h 192.168.19.132 -uroot -p #失败 报了:ERROR 2003 (HY000): Can't connect to MySQL server (111)

mysql -h localhost -uroot -p #可以

至此可以确定,是什么东西挡住了远程访问,但不是表权限。

随后看到了一篇stackoverflow的文章:

 https://stackoverflow.com/questions/11758339/error-2003-hy000-cant-connect-to-mysql-server-111 

我看到了一条命令:

netstat -nat |grep :3306

显示了:

tcp        0      0 127.0.0.1:3306            0.0.0.0:*               LISTEN

OK,这才发现这mysql只监听了 127.0.0.1

操作二:开始解决ip监听问题

mysql配置文件检查

检查my.cnf的配置,bind-address=addr可以配置绑定ip地址。

不配置或者IP配置为0.0.0.0,表示监听所有客户端连接。

注意(我踩了这个坑):mysql 5.7的目录改成了/etc/mysql/mysql.conf.d/mysqld.cnf 而非之前的 /etc/mysql/mycnf

「学习笔记」无法远程访问 MySQL 碰到的坑

「学习笔记」无法远程访问 MySQL 碰到的坑

注释掉 bind-address = 127.0.0.1

重启(每个平台命令都不一样):

/etc/init.d/mysql restart

点我查看:point_right: 各个平台的mysql重启命令

至此,终于解决!一共两个操作解决:

1.表权限

2.端口


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Computer Age Statistical Inference

Computer Age Statistical Inference

Bradley Efron、Trevor Hastie / Cambridge University Press / 2016-7-21 / USD 74.99

The twenty-first century has seen a breathtaking expansion of statistical methodology, both in scope and in influence. 'Big data', 'data science', and 'machine learning' have become familiar terms in ......一起来看看 《Computer Age Statistical Inference》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

html转js在线工具
html转js在线工具

html转js在线工具