安装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数据库,远程不能访问的几种可能问题的更多相关文章

  1. 允许Ubuntu系统下Mysql数据库远程连接

    第一步: vim /etc/mysql/my.cnf找到bind-address = 127.0.0.1 注释掉这行,如:#bind-address = 127.0.0.1 或者改为: bind-ad ...

  2. MySQL数据库远程连接

    12.00 MySQL数据库远程连接 参考: http://www.jb51.net/article/24508.htm http://www.linuxdiyf.com/viewarticle.ph ...

  3. Ubuntu上更改MySQL数据库数据存储目录

    之前写过一篇博客"MySQL更改数据库数据存储目录",当时的测试环境是RHEL和CentOS,谁想最近在Ubuntu下面更改MySQL数据库数据存储目录时遇到了之前未遇到的问题,之 ...

  4. linux mysql 数据库开启外部访问设置指南

    Linux下设置MySQL和允许外部机器访问,具体目录是具体情况而定,有的人是安装了在个人目录下,则找到对应的目录则可以 Linux下设置MySQL和允许外部机器访问sudo vi /etc/my.c ...

  5. Ubuntu下删除mysql数据库

    Ubuntu下删除mysql数据库 sudo apt-get autoremove --purge mysql-server-5.7 sudo apt-get remove mysql-server ...

  6. Ubuntu Server下MySql数据库备份脚本代码

    明: 我这里要把MySql数据库存放目录/var/lib/mysql下面的pw85数据库备份到/home/mysql_data里面,并且保存为mysqldata_bak_2012_04_11.tar. ...

  7. 入门系列之在Ubuntu上使用MySQL设置远程数据库优化站点性能

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由苏子晨 发表于云+社区专栏 介绍 随着您的应用程序或网站的增长,您可能已经超出了当前的服务器设置.如果您在同一台计算机上托管Web服务 ...

  8. Windows远程连接Ubuntu上的MySQL数据库

    原因:mysql安装好后,默认监听3306端口,并且只允许localhost访问,只允许root用户在localhost上登录.   我的环境:                 Ubuntu16.04 ...

  9. navicat for mysql远程连接ubuntu服务器的mysql数据库

    经常玩服务器上的mysql数据库,但是基于linux操作Mysql多有不便,于是就想着使用GUI工具来远程操作mysql数据库.已经不是三次使用navicat-for-mysql了,但是每次连接远程服 ...

随机推荐

  1. (转载)函数:mysqli_query和mysql_query有何区别?

    (转载)http://wzan315.blog.163.com/blog/static/37192636201241732045299/ Mysqli.dll是一个允许以对象的方式或者过程操作数据库的 ...

  2. ssh互信自动化脚本(待更新)

    1.建立一个ip,端口,用户,密码列表 [root@localhost shell-key]# cat arg_list.txt 172.16.56.215 172.16.56.215 172.16. ...

  3. Java日志记录的5条规则

    日志记录是在软件开发过程中常常需要考虑的关键因素. 当产品运行出错时,日志文件通常是我们进行错误分析的首要选择. 而且,在很多情况下,它们是我们手上唯一可以用来查明发生状况和问题根本原因的信息. 可见 ...

  4. Apache-POI操作Excel的一些小技巧

    Apache-POI操作Excel将合并后的单元格全部填充为相同数据的一个实例. private static void fillMergedRegion(final Sheet sheet) { f ...

  5. Conversion between json and object

    public static string ObjToJson<T>(T obj) { DataContractJsonSerializer serializer = new DataCon ...

  6. DataGridView 列大写、列只能输入数字 分类: DataGridView 2014-12-07 08:40 332人阅读 评论(0) 收藏

    列大写: 说明:调用EditingControlShowing事件 private void dgvGoods_EditingControlShowing(object sender, DataGri ...

  7. C# ArrayList 基本用法 分类: C# 2014-09-26 11:03 524人阅读 评论(0) 收藏

    首先说明一下ArrayList 与 数组的区别: (1)ArrayList 的容量可以根据需要自由扩充,数组的容量是固定的 (2)ArrayList 只能是一维形式,数组可以是多维的 (3)Array ...

  8. 源文件名和public 类名

    问题: 源文件名和类名不一样 解决方法:将源文件的文件名test修改成Test 

  9. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(4)-构建项目解决方案 创建EF DataBase Frist模式

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(4)-构建项目解决方案 创建EF DataBase Frist模式 进行本次文章之前,我们可能需要补充一些 ...

  10. qt中使用opencv处理图片 QImage 和 IplImage 相互之间转换问题

    在用opencv处理图片显示在qt label上的时候遇到不是问题 1. qt上要用qimage形式才干显示 IplImage转成 Qimage 彩色图像转换 IplImage  *fram; QIm ...