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

前言

最近在工作中遇到一个问题,发现在Centos7系统下怎么也不能远程连接mysql,通过查找相关的资料,终于解决了,以下方法就是我在碰到远程连接不到Mysql数据库后试过的方法,最终也是解决掉了问题。所以总结一下分享出来,供同样遇到这个问题的朋友们参考学习,下面话不多说了,来一起看看详细的介绍吧。

有两种原因

  • 数据库没有授权
  • 服务器防火墙没有开放3306端口

一、数据库没有授权

对于mysql数据库没有授权,只需要用一条命令就可以了。

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

//远程连接数据库的时候需要输入用户名和密码
用户名:root
密码:123456
指点ip:%代表所有Ip,此处也可以输入Ip来指定Ip

输入后使修改生效还需要下面的语句
mysql>FLUSH PRIVILEGES;

二、服务器防火墙没有开放3306端口

centos 有两种防火墙 FirewallD和iptables防火墙

centos7 使用的是FirewallD防火墙。

FirewallD 是 iptables 的前端控制器,用于实现持久的网络流量规则。它提供命令行和图形界面,在大多数 Linux 发行版的仓库中都有。与直接控制 iptables 相比,使用 FirewallD 有两个主要区别:

1.FirewallD 使用区域和服务而不是链式规则。

2.它动态管理规则集,允许更新规则而不破坏现有会话和连接。

FirewallD 是 iptables 的一个封装,可以让你更容易地管理 iptables 规则 - 它并不是 iptables 的替代品。虽然 iptables 命令仍可用于 FirewallD,但建议使用 FirewallD 时仅使用 FirewallD 命令。

1.FirewallD防火墙开放3306端口

 firewall-cmd --zone=public --add-port=3306/tcp --permanent

命令含义:

--zone #作用域

--add-port=3306/tcp #添加端口,格式为:端口/通讯协议

--permanent  #永久生效,没有此参数重启后失效

重启防火墙

systemctl restart firewalld.service

2.iptables 开发3306端口

/sbin/iptables -I INPUT -p tcp -dport 3306 -j ACCEPT

/etc/rc.d/init.d/iptables save

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

时间: 2017-09-19

虚拟机里Centos7的IP地址查看方法

这里之所以是查看下IP ,是我们后面要建一个Centos远程工具Xshell 连接Centos的时候,需要IP地址,所以我们这里先 学会查看虚拟机里的Centos7的IP地址 首先我们登录操作系统 用户名root 密码 123456 然后我们输入ip查询命名 ip addr 发现ens33 没有inet 这个属性,那么就没法通过IP地址连接虚拟机. 接着来查看ens33网卡的配置:vi /etc/sysconfig/network-scripts/ifcfg-ens33 注意vi后面加空格 vi

Centos7使用yum安装Mysql5.7.19的详细步骤

Centos7的yum源中默认是没有mysql,因为现在已经用mariaDB代替mysql了. 首先我们下载mysql的repo源,我们可以去mysql官网找最新的repo源地址 地址: https://dev.mysql.com/downloads/repo/yum/ 开始在linux下下载repo源 //下载mysql rpm包 # wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm //安装my

CentOS7 下安装telnet服务的实现方法

CentOS7 下安装telnet服务的实现方法 今天搞了下 Centos 7 下面升级 openssl 和 openssh ,顺便装了下 telnet # 安装 telnet 避免 ssh 无法登录 yum -y install xinetd telnet telnet-server  # 允许 root 账号登陆 vi /etc/securetty # 末尾添加两行 pts/0 pts/1 # 添加防火墙端口 vi /etc/sysconfig/iptables -A INPUT -p tc

Linux下Centos7安装Mysql5.7.19的详细教程

1.下载mysql 网址: https://dev.mysql.com/downloads/mysql/ 2.选择源码包,通用版点击下载 直接下载就可以了,不用登录 3.解压编译 tar -zxvf mysql-5.7.19.tar.gz cd mysql-5.7.19.tar.gz 创建数据目录  mkdir -p /data/mysql 先用cmake编译,没有这个命令需要先yum安装 cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ #这个是编译

CentOS7服务器中apache、php7以及mysql5.7的安装配置代码

CentOS7服务器中apache.php7以及mysql5.7的配置代码如下所示: yum upgrade yum install net-tools 安装apache 关闭SELinux 编辑器打开 etc/selinux/config 文件,找到 SELINUX=enforcing 字段,将其改成 SELINUX=disabled ,并重启设备. yum -y install httpd mod_ssl 配置防火墙 firewall-cmd --permanent --add-port=8

Centos7 移动mysql5.7.19 数据存储位置的操作方法

场景:随着数据量的增加,mysql所在的磁盘已占满,需要将data移动到空间较大的盘上. 方法: 1. 关闭mysql服务 service mysqld stop 2. 将data目录移动到空间较大的盘上 cp -a /usr/local/mysql/data/ /home/mysqldata/ -a :相当于 -pdr 的意思(参数pdr分别为:保留权限,复制软链接本身,递归复制): 3 . 修改配置文件my.cnf ... sql_mode=NO_ENGINE_SUBSTITUTION,ST

Centos7学习之添加用户和用户组的方法

在使用 Centos 之前用的更多是Ubuntu,所以在 useradd 和 adduser 两条命令出现歧义,在Ubuntu系统上这是两条命令,而在Centos上则是同一条命令,adduser 是链接的形式存在 # ll /usr/sbin/ | grep user lrwxrwxrwx. 1 root root 7 10月 30 17:09 adduser -> useradd -rwxr-x---. 1 root root 114064 6月 10 09:16 useradd 1.添加用户

ASP.NET动态添加用户控件的方法

本文实例讲述了ASP.NET动态添加用户控件的方法.分享给大家供大家参考.具体实现方法如下: 为了让用户控件能ASP.NET页面实现动态添加,首先写一个接口IGetUCable,这个接口有一个函数,返回对象类型是UserControl. using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; /// <summary> /// Summar

CentOS添加和删除用户以及用户组的方法

1.Linux环境下的账户系统文件主要在/etc/passwd, /etc/shadow,/etc/group,和/etc/gshadow四个文件.基本含义就不多说了重点说一下,root的uid是0,从 1-499是系统的标准账户,普通用户从uid 500开始. usermod 选项 用户名//修改已经存在的用户 userdel -r 用户名//删除用户表示自家目录一起删除. groupadd 选项 组名// 添加新组 groupmod 选项 组名//修改已经存在的组 groupdel 组名 /

详解Linux添加/删除用户和用户组

本文总结了Linux添加或者删除用户和用户组时常用的一些命令和参数.废话不多说,下面我们来看一下. 1.建用户: adduser phpq                             //新建phpq用户 passwd phpq                               //给phpq用户设置密码 2.建工作组 groupadd test                          //新建test工作组 3.新建用户同时增加工作组 useradd -g te

linux中如何添加用户并赋予root权限详解

一.linux添加用户并赋予root权限 1.添加用户,首先用adduser命令添加一个普通用户,命令如下: #adduser eric //添加一个名为eric的用户 #passwd eric//修改密码 Changing password for user eric. New UNIX password: //在这里输入新密码 Retype new UNIX password: //再次输入新密码 passwd: all authentication tokens updated succe

Linux 为特定的用户或用户组启用或禁用 SSH的方法

由于你的公司标准规定,你可能只能允许部分人访问 Linux 系统.或者你可能只能够允许几个用户组中的用户访问 Linux 系统.那么如何实现这样的要求呢?最好的方法是什么呢?如何使用一个简单的方法去实现呢? 是的,我们会有很多种方法去实现它.但是我们应该使用简单轻松的方法.为了简单轻松的完成目的,我们可以通过对 /etc/ssh/sshd_config 文件做必要的修改来实现.在这篇文章中我们将会向你展示实现要求的详细步骤. 为什么我们要这样做呢?是出于安全的原因.你可以访问这个链接来获取更多关

NET USER 命令详解(dos下添加用户)

Net user 添加或修改用户帐户或者显示用户帐户信息. 语法 net user [UserName [Password | *] [options]] [/domain] net user [UserName {Password | *} /add [options] [/domain]] net user [UserName [/delete] [/domain]] 参数 UserName 指定要添加.删除.修改或查看的用户帐户名.用户帐户名最多可有 20 个字符. Password 为用

详解Centos7 修改mysql指定用户的密码

本文介绍了Centos7 修改mysql指定用户的密码,具体如下: 1.登陆mysql或者mariadb(两种任选其一) [root@localhost ~]# mysql -u root [root@localhost ~]# mysql -uroot -p 2.切换到存储用户名和密码的数据库 MariaDB [mysql]> use mysql;回车,会显示以下内容 Reading table information for completion of table and column na

如何使用PHP往windows中添加用户

方法有一: 因为添加用户,所以你运行PHP程序的用户必须是管理员权限(Administrator),并且同时需要你的php.ini中的安全模式没有打开,并且关闭函数中没有关闭system().exec().passthru()等函数. ( 以下说明针对Windows2000/Windows XP/Windows 2003 )   一.使用IIS做Web服务器   如果是使用IIS做服务器的话,那么运行PHP的帐户就是:IUSR_XXXXXXXX,IWAM_XXXXXXX,(XXXX代表服务器的计

linux查看所有用户和查看用户组的方法(修改用户组)

1.linux里查看所有用户 (1)在终端里.其实只需要查看 /etc/passwd文件就行了.(2)看第三个参数:500以上的,就是后面建的用户了.其它则为系统的用户. 或者用cat /etc/passwd |cut -f 1 -d : 2.用户管理命令 useradd 注:添加用户adduser 注:添加用户passwd 注:为用户设置密码usermod 注:修改用户命令,可以通过usermod 来修改登录名.用户的家目录等等:pwcov 注:同步用户从/etc/passwd 到/etc/s