内容简介:平台:ubutunmysql版本:5.7 (重要)
平台: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
注释掉 bind-address = 127.0.0.1
重启(每个平台命令都不一样):
/etc/init.d/mysql restart
点我查看:point_right: 各个平台的mysql重启命令
至此,终于解决!一共两个操作解决:
1.表权限
2.端口
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 当 Structured Streaming 碰到 Kafka
- Junit单元测试碰到静态变量如何处理
- IT 职场新人碰到的几个常见误区
- React小知识(3) - 国际化中碰到的问题
- 无依赖开发中的碰到的问题——封装DOM操作
- 第一次把mysql装进docker里碰到的各种问题
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
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》 这本书的介绍吧!