MySQL远程无法连接的一些常见原因总结

目录
  • 前言
  • 原因1:
  • 原因2:
  • 原因3:
  • 总结

前言

MySQL是目前非常流行的数据库之一,也是中小企业持久化存储的首选数据库。

不同于我们日常学习,在实际应用中,MySQL服务都会挂载在某台服务器上。如果MySQL部署在某台云服务器上,这样一来,操纵数据库每次都需要先连接服务器,再进入数据库操作,不是很方便。

于是,学习远程连接 MySQL 的方法是数据库在服务器上时的必修课。下面我将讲述远程连接报错的常见三种原因。

原因1:

MySQL的远程访问权限未开放

如果最常见的无法远程连接问题,因为没开启远程访问权限导致的。

解决方案:

进入MySQL中,通过下述命令可以查看远程访问权限等,创建用户的远程访问权限并刷新指令即可,别忘记每次修改命令都要刷新指令哦。

常见命令如下:

# 查看当前远程连接的权限
select User,authentication_string,Host from user;
# 创建用户远程访问权限
create user root@'%' identified by '123456';
# 允许指定主机(IP地址)访问权限
grant all privileges on test.* to '用户名'@'ip地址' identified by '密码';
# 无法创建请删除重新试一遍
drop user root@'ip地址';
# 赋予用户操作的全部权限
grant all privileges on *.* to root@'%';
# 刷新指令
flush privileges;

原因2:

服务器开启了防火墙,导致MySQL的访问端口无法使用

如果服务器开启了防火墙,并且未设置MySQL端口开放策略,那么你将无法通过对应的端口远程访问MySQL。

解决方案:

关闭防火墙,或者开放对应的MySQL端口即可,比如默认的MySQL端口是3306,开放他就行。

常见命令如下:

# 查看防火墙状态
firewall-cmd --state
# 启动防火墙
systemctl start firewalld.service
# 关闭防火墙
systemctl stop firewalld.service
# 设置开机自启动
systemctl enable firewalld.service
# 开放防火墙端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 重新加载配置
firewall-cmd --reload
# 查看开放的防火墙端口
firewall-cmd --zone=public --list-ports

原因3:

docker链被清除,导致MySQL无法访问

如果你的MySQL是部署在docker容器中的,并且在部署完成后开启设置了防火墙。这个时候就可能导致docker的链被清除,即使你开启了远程访问权限,也只能通过进入容器访问MySQL,远程无法访问。

解决方案:

重新启动docker,可以恢复docker链。

# 重启docker
systemctl restart docker

总结

到此这篇关于MySQL远程无法连接的一些常见原因的文章就介绍到这了,更多相关MySQL远程无法连接原因内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 解决MySQL无法远程连接的方法

    MySql远程连接无法打开解决办法 1.改表法. 请使用mysql管理工具,如:SQLyog Enterprise.navicate mysql 可能是你的帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电脑使用mysql管理工具登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%" 2. 授权法.

  • 解决阿里云ECS服务器下安装MySQL无法远程连接的问题

    场景重现 在阿里云ECS下,Ubuntu系统上通过以下命令安装的MySQL数据库,本地连接正常, 但远程死活连接不上. # 安装MySQL apt-get install mysql-server 解决办法 主要有以下几点: 用户root默认受限为本地可访问(localhost), 远程拒绝(出于安全考虑吧)但是这个我们可以修改的, 在本地用root登录后, 修改对应的表字段值即可. 这里需要注意的是MySQL安装完成后, 自带了一个mysql数据库, 里面有个user表, 就是存放此类信息的.

  • Navicat出现无法远程连接MySql服务器问题的解决办法

    Navicat无法远程连接MySql服务器问题的解决方法写在前面: 操作系统:中标麒麟4.0: 数据库:MySQL5.7.26: JDK:采用中标麒麟系统自带的openjdk: 客户端工具:Navicat: 前置条件: MySQL服务安装完毕: 情景: 安装好mysql,本地访问正常,但同一个局域网内的机器都无法访问该服务器上的mysql数据库: 原因: mysql默认是不可以通过远程机器访问的,只允许本地访问,通过下面的配置可以开启远程访问: 排查思路: mysql设置远程访问主要从以下三个方

  • Centos7下无法远程连接mysql数据库的原因与解决

    前言 最近在工作中遇到一个问题,发现在Centos7系统下怎么也不能远程连接mysql,通过查找相关的资料,终于解决了,以下方法就是我在碰到远程连接不到Mysql数据库后试过的方法,最终也是解决掉了问题.所以总结一下分享出来,供同样遇到这个问题的朋友们参考学习,下面话不多说了,来一起看看详细的介绍吧. 有两种原因 数据库没有授权 服务器防火墙没有开放3306端口 一.数据库没有授权 对于mysql数据库没有授权,只需要用一条命令就可以了. mysql>GRANT ALL PRIVILEGES O

  • navicat无法远程连接mysql的解决方法

    近日在Ubuntu上安装了一个 MySQL 5.0,因为使用 phpMyAdmin 还必须安装 PHP,所以打算直接使用远程管理工具Navicat for MySQL 来连接. 在 Ubuntu 中通过 mysql 命令行创建好一个数据表并分配了权限: 复制代码 代码如下: GRANT ALL ON testdb.* TO usera IDENTIFIED BY 'passwd' 然后重启加载权限: 复制代码 代码如下: mysqladmin –uroot –p flush-privileges

  • MySQL远程无法连接的一些常见原因总结

    目录 前言 原因1: 原因2: 原因3: 总结 前言 MySQL是目前非常流行的数据库之一,也是中小企业持久化存储的首选数据库. 不同于我们日常学习,在实际应用中,MySQL服务都会挂载在某台服务器上.如果MySQL部署在某台云服务器上,这样一来,操纵数据库每次都需要先连接服务器,再进入数据库操作,不是很方便. 于是,学习远程连接 MySQL 的方法是数据库在服务器上时的必修课.下面我将讲述远程连接报错的常见三种原因. 原因1: MySQL的远程访问权限未开放 如果最常见的无法远程连接问题,因为

  • 远程无法连接SQL2000及MySQL的原因和解决办法

    1. 没有在数据库管理面板中设置远程连接IP造成的. 说明:为了提高操作系统的安全性,所有使用了星外安全包的用户,在导 入ipsec策略后,SQL2000所使用的1433端口及MySQL使用的3306 端口就会自动被关闭.如果您需要在不同的服务器之间连接数据 库,您就需要在数据库管理面板中设置远程连接IP才能远程连接数 据库. 解决办法:您的数据库用户如果需要远程连接服务器的1433或3306端口, 您应该让这个用户自己登陆[星外虚拟主机管理平台]的用户 区,点数据库管理,点数据库面板中的设置远

  • Docker部署mysql远程连接 解决2003的问题

    连接MySQL 这里我使用navicat远程连接,连接MySQL前需要防火墙开放端口或者关闭防火墙. 开放端口 firewall-cmd --add-port=3306/tcp --permanent // --permanent 永久生效,没有此参数重启后失效 firewall-cmd --reload // 重新载入 关闭防火墙 systemctl stop firewalld systemctl enable iptables // 设置开机启动 firewall-cmd --reload

  • MySQL远程连接不上的解决方法

    之前遇到过MySQL本地可以连接但是远程连不上的问题,没有记录,今天在云上新申请的服务器上又遇到这个问题,记录一下解决过程. 1.排除网络或防火墙问题 先看是否能ping通远程服务器,ping 192.168.1.211,如果不可以就是网络问题.然后,检查端口是否被防火墙挡住了,telnet 192.168.1.211 3306,如果连接失败,配置防火墙. 配置防火墙,开启3306端口 vi /etc/sysconfig/iptables -A INPUT -m state –state NEW

  • mysql jdbc连接步骤及常见参数

    mysql数据库自不必说,现在很多程序开发应用及站长们常用到,jdbc可能一般会比较陌生一些,jdbc是什么意思?这里也会提到,最主要的是为大家介绍一下,mysql jdbc连接步骤及常见参数详解. jdbc是什么意思? jdbc(java data base connectivity,java数据库连接)是一种用于执行sql语句的javaapi,可以为多种关系数据库提供统一访问,它由一组用java语言编写的类和接口组成.jdbc提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能

  • Mysql 远程连接配置实现的两种方法

    Mysql 远程连接配置实现的两种方法 大家在公司工作中,经常会遇到mysql数据库存储于某个人的电脑上,大家要想连接mysql服务,装有mysql服务的电脑就必须开启远程连接. 第一种: root@ubuntu:/usr/local/MySQL# mysql -hlocalhost -uroot -proot; mysql>use mysql; mysql>insert into user ( host, user, password, Select_priv, Insert_priv, U

  • 开启MySQL远程连接的方法

    MySql-Server 出于安全方面考虑只允许本机(localhost, 127.0.0.1)来连接访问,这对于 Web-Server 与 MySql-Server 都在同一台服务器上的网站架构来说是没有问题的. 但随着网站流量的增加,后期服务器架构可能会将 Web-Server 与 MySql-Server 分别放在独立的服务器上,以便得到更大性能的提升,此时 MySql-Server 就要修改成允许 Web-Server 进行远程连接. 开启了远程连接,数据库的后期管理运维也不用每次都登到

  • 详解MySQL连接挂死的原因

    一.背景 近期由测试反馈的问题有点多,其中关于系统可靠性测试提出的问题令人感到头疼,一来这类问题有时候属于"偶发"现象,难以在环境上快速复现:二来则是可靠性问题的定位链条有时候变得很长,极端情况下可能要从 A 服务追踪到 Z 服务,或者是从应用代码追溯到硬件层面. 本次分享的是一次关于 MySQL 高可用问题的定位过程,其中曲折颇多但问题本身却比较有些代表性,遂将其记录以供参考. 架构 首先,本系统以 MySQL 作为主要的数据存储部件.整一个是典型的微服务架构(SpringBoot

  • 浅谈mysql的索引设计原则以及常见索引的区别

    索引定义:是一个单独的,存储在磁盘上的数据库结构,其包含着对数据表里所有记录的引用指针. 数据库索引的设计原则: 为了使索引的使用效率更高,在创建索引时,必须考虑在哪些字段上创建索引和创建什么类型的索引. 那么索引设计原则又是怎样的? 1.选择唯一性索引 唯一性索引的值是唯一的,可以更快速的通过该索引来确定某条记录. 例如,学生表中学号是具有唯一性的字段.为该字段建立唯一性索引可以很快的确定某个学生的信息. 如果使用姓名的话,可能存在同名现象,从而降低查询速度. 2.为经常需要排序.分组和联合操

  • mysql导入sql文件命令和mysql远程登陆使用详解

    在MySQL Qurey   Brower中直接导入*.sql脚本,是不能一次执行多条sql命令的,在mysql中执行sql文件的命令: 复制代码 代码如下: mysql> source   d:/myprogram/database/db.sql; 另附mysql常用命令: 一) 连接MYSQL: 格式: mysql -h主机地址 -u用户名 -p用户密码 1.例1:连接到本机上的MYSQL 首先在打开DOS窗口,然后进入mysql安装目录下的bin目录下,例如: D:/mysql/bin,再

随机推荐