ubuntu系统安装的MySql数据库,远程不能访问的几种可能问题
安装MySQL数据库后一般会遇到远程计算机不能连接的问题,具体问题需要我们排查。
可能一:MySql数据库是否提供了外部访问的用户以及权限?
可能二:MySql的配置文件是否只绑定了本机ip(ubuntu下:/etc/mysql/mysql.conf.d/mysqld.cnf)?
可能三:操作系统的防火墙不允许外部访问3306端口
本文实例发生的环境是ubuntu16.04,MySql5.7。
排查一:在安装了MySql数据库的计算机上,
命令行进入mysql:mysql -u root -p
并输入用户root的密码:
执行语句:select user, host from user;

如果是上述结果,则说明没有设定外部访问的用户,接下来我们给root用户赋予外部访问的权限,执行2条语句:
grant all privileges on *.* to 'root'@'192.168.3.%' identified by 'password' with grant option;
flush privileges;
注意password是你给root设定的密码,注意拼写,一切ok后再次查看user表内的内容

红框里的那条记录就是刚才我们用grant命令添加的,它的意思是局域网内192.168.3.0-192.68.3.255的ip主机都可以通过用户root和密码password来访问。
这里解释一下grant语句格式
mysql> grant 权限1,权限2,…权限n on 数据库名.表名 to 用户名@用户地址 identified by ‘用户密码’ with grant option;
权限1,权限2,…代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等权限。
如果是all privileges或者all,表示赋予用户全部权限。
如果数据库名.表名被*.*代替,表示赋予该用户可以操作服务器上所有数据库所有表的权限。
用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用’%'表示从任何地址。
‘用户密码’必须提供。
最后的 with grant option 表示权限传递,意思是允许该用户将其权限分配给其他人。
以上所有操作也可在图形界面完成,如果你的ubuntu上安装了MySql Workbench会很方便:

排查二:配置文件是否只绑定了本机ip,使用gedit文本编辑器打开mysql的配置文件,把bind-address = 127.0.0.0这行注释掉(句首加上#),当然,也可以绑定你所需的主机,ubuntu终端执行:sudo gedit /etc/mysql/mysql.conf.d/mysqld.cnf

保存退出,ubuntu终端执行:service mysql restart,或者手动重启mysql,或者重启系统。
另外,重启之后你可以使用 netstat -an|grep 3306 命令来查看端口情况:

红框内是注释掉bind-address后才有的,未注释前没有。
排查三:关于操作系统的防火墙不允许外部访问3306端口,请根据操作系统自行排查。
END.
ubuntu系统安装的MySql数据库,远程不能访问的几种可能问题的更多相关文章
- 允许Ubuntu系统下Mysql数据库远程连接
第一步: vim /etc/mysql/my.cnf找到bind-address = 127.0.0.1 注释掉这行,如:#bind-address = 127.0.0.1 或者改为: bind-ad ...
- MySQL数据库远程连接
12.00 MySQL数据库远程连接 参考: http://www.jb51.net/article/24508.htm http://www.linuxdiyf.com/viewarticle.ph ...
- Ubuntu上更改MySQL数据库数据存储目录
之前写过一篇博客"MySQL更改数据库数据存储目录",当时的测试环境是RHEL和CentOS,谁想最近在Ubuntu下面更改MySQL数据库数据存储目录时遇到了之前未遇到的问题,之 ...
- linux mysql 数据库开启外部访问设置指南
Linux下设置MySQL和允许外部机器访问,具体目录是具体情况而定,有的人是安装了在个人目录下,则找到对应的目录则可以 Linux下设置MySQL和允许外部机器访问sudo vi /etc/my.c ...
- Ubuntu下删除mysql数据库
Ubuntu下删除mysql数据库 sudo apt-get autoremove --purge mysql-server-5.7 sudo apt-get remove mysql-server ...
- Ubuntu Server下MySql数据库备份脚本代码
明: 我这里要把MySql数据库存放目录/var/lib/mysql下面的pw85数据库备份到/home/mysql_data里面,并且保存为mysqldata_bak_2012_04_11.tar. ...
- 入门系列之在Ubuntu上使用MySQL设置远程数据库优化站点性能
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由苏子晨 发表于云+社区专栏 介绍 随着您的应用程序或网站的增长,您可能已经超出了当前的服务器设置.如果您在同一台计算机上托管Web服务 ...
- Windows远程连接Ubuntu上的MySQL数据库
原因:mysql安装好后,默认监听3306端口,并且只允许localhost访问,只允许root用户在localhost上登录. 我的环境: Ubuntu16.04 ...
- navicat for mysql远程连接ubuntu服务器的mysql数据库
经常玩服务器上的mysql数据库,但是基于linux操作Mysql多有不便,于是就想着使用GUI工具来远程操作mysql数据库.已经不是三次使用navicat-for-mysql了,但是每次连接远程服 ...
随机推荐
- Oracle RAC学习笔记:基本概念及入门
Oracle RAC学习笔记:基本概念及入门 2010年04月19日 10:39 来源:书童的博客 作者:书童 编辑:晓熊 [技术开发 技术文章] oracle 10g real applica ...
- 关于fixed-point
今天又出现了shader的问题,编译到真机效果就没了,后来仔细还是因为浮点数精度的问题,后来仔细查找了些资料,才发现自己太粗心,没有看清楚 fixed-point 数据类型就乱用,这是个范围在 [-1 ...
- OpenStack网络的前世今生
声明: 本文转自OpenStack中国社区,原文链接:http://www.openstack.cn/p353.html,作者Joshua,转载请注明. 在OpenStack世界中,网络组件最初叫no ...
- [Java] Java IO 概况
Java IO 是 Java 的一套 API, 用于读入和写出数据(输入和输出).Java IO API 位于 java.io package.实际上 java.io package 没有解决所有的输 ...
- zabbix 飞信集成配置
1.环境说明: (Gentoo Linux环境) # uname -a Linux Crob 2.6.34-gentoo #1 SMP Mon May 31 15:45:25 CST 2010 x86 ...
- Oracle 监控索引使用
Oracle提供一个监控索引的方法,来确定索引是否被使用.如果索引没有被使用,就可以删除它们以减少不必要的语句的开销.因为表上的大量不必要的索引可能会降低DML语句的性能,给数据库性能产生压力.所以生 ...
- ng-repeat 遍历同值数组导致的报错
http://blog.csdn.net/tyust512/article/details/50370624
- JSP ---- 声明、表达式、脚本、注释
声明 在 JSP 页面中 , 可以声明一个或者多个合法的变量和方法 , 声明后的变量和方法可以在本 JSP 页面的任何位置使用 , 并将在 JSP 页面初始化时被初始化 语法格式如下 : <!% ...
- C++一些注意点之操作符重载
重载操作符需要注意 (1)重载操作符必须具有一个类类型操作数.不能重载内建类型的操作符. operator +(int,int);//这个是错误的,都为内建类型 operator +(int,clas ...
- [RxJS + AngularJS] Sync Requests with RxJS and Angular
When you implement a search bar, the user can make several different queries in a row. With a Promis ...