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

 更新时间:2022年09月20日 15:29:18   作者:Lit Shang  
有的小伙伴发现自己的mysql无法正常连接远程服务器,下面这篇文章主要给大家介绍了关于MySQL远程无法连接的一些常见原因,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

前言

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远程无法连接原因内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • mysql免安装版配置与修改密码的教程

    mysql免安装版配置与修改密码的教程

    这篇文章主要介绍了mysql免安装版配置与修改密码的教程详解,需要的朋友可以参考下
    2018-02-02
  • 深入mysql并发插入优化详解

    深入mysql并发插入优化详解

    本篇文章是对mysql并发插入优化进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • SQL中current_date()函数的实现

    SQL中current_date()函数的实现

    日期时间类型的数据也是经常要用到的,SQL中也提供了一些函数对这些数据进行处理,本文主要介绍了SQL中current_date()函数的实现,具有一定的参考价值
    2024-02-02
  • Mysql如何按照范围区间创建分区表

    Mysql如何按照范围区间创建分区表

    在Mysql的范围分区表定义中,分区范围需要连续并且不会有覆盖,定义范围分区表时,使用VALUES LESS THAN操作符,这篇文章主要介绍了Mysql如何按照范围区间创建分区表,需要的朋友可以参考下
    2024-08-08
  • MySQL新手入门进阶语句汇总

    MySQL新手入门进阶语句汇总

    这篇文章主要给大家介绍了关于MySQL新手入门进阶语句的相关资料,总结分析了MySQL数据库常用的查询、条件查询、排序、连接查询、子查询等相关操作技巧,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • MySQL 索引知识汇总

    MySQL 索引知识汇总

    这篇文章主要介绍了MySQL 索引使用方法的相关资料,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • MySQL8.0与MySQL5.7的区别详解

    MySQL8.0与MySQL5.7的区别详解

    MySQL8.0是2018年4月20日发布的全球最受欢迎的开源数据库的一个非常令人兴奋的新版本,下面这篇文章主要给大家介绍了关于MySQL8.0与MySQL5.7区别的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-01-01
  • MySQL索引详解及演进过程及面试题延伸

    MySQL索引详解及演进过程及面试题延伸

    这篇文章主要介绍了MySQL索引详解及演进过程以及延申出面试题,索引在关系型数据库中,是一种单独的、物理的对数据库表中的一列或者多列值进行排序的一种存储结构
    2022-07-07
  • mysql字符串拼接并设置null值的实例方法

    mysql字符串拼接并设置null值的实例方法

    在本文中小编给大家整理的是关于mysql 字符串拼接+设置null值的实例内容以及具体方法,需要的朋友们可以学习下。
    2019-09-09
  • linux系统中重置mysql的root密码

    linux系统中重置mysql的root密码

    我相信平时大家一定会遇到忘记密码的时候,实在记不起来了,我们就会重置密码,最快最直接的方法,这篇文章就是主要介绍了linux系统中重置mysql的root密码的方法,需要的朋友可以参考下
    2015-08-08

最新评论