Linux系统云服务器上安装Mysql5.7数据库,解决不能远程访问的bug

引言:最近为了做微信公众号开发买了一台腾讯云Linux CentOs7.6服务器,在服务器上安装完了JDK1.8之后,开始安装Mysql5.7数据库。Linux系统下下载、安装Mysql5.7数据库服务器已是不易,没想到安装好之后一直无法使用客户端Navicat远程访问,在CSDN博客上搜索解决方案时也发现很多同行小伙伴遇到相同的问题。但是福哥通过参考了多篇博客和一篇百度经验的解决思路后,终于解决了Navicat远程连接Mysql5.7服务端的问题了。于是感到有必要分享一下自己在云服务器上安装Mysql5.7数据库,并解决客户端远程访问难题的历程,希望能帮助到更多遇到相同问题的同行小伙伴!

1 下载Mysql5.7的rpm包

 本文的Mysql数据库是安装在linux系统下的云服务器上,因此需要下载Linux系统对应的Mysql5.7版本的rpm包,笔者选择安装的是mysql5.7.29版本。Linux系统下也可以使用yum --y install 命令

可至官网下载mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar包

下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#download

系统选项选择: Red HatEnterprise Linux/Oracle Linux系统,下载的包选择mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar包,大小有529.5M,下载速度非常慢,笔者已将下载好的包上传到了百度云盘,有需要的同行小伙伴可以关注我的微信公众号“程序员阿福”,然后在公众号消息中发送关键字“mysql5.7”获取本人在百度云盘上的下载链接和二维码

2 安装Mysql5.7.29

1) 使用xshell6 工具用root账户和密码登录linux服务器,登录成功后执行cd /usr/local 命令进入 /usr/local目录 ,在当前目录下 执行mkdir mysql5.7命令新建目录mysql5.7;

2) 使用xftp6 将本地下载好的mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar包上传到linux系统下的mysql5.7目录,并执行tar -xvf mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar命令将文件解压

上图是笔者解过压,并删除mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar包后的mysql5.7文件列表截图,解压出来有10个rpm包

3) 检测服务器系统是否已经安装了mysql,使用如下命令查看


rpm -qa | grep mysql

如果已经安装了需要执行如下命令将其卸载,卸载命令如下:

rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64

(mysql-libs-5.1.71-1.el6.x86_64是执行上一步指令查询出的mysql包名)

4) 查看 centos7自带的MariaDB数据库是否存在,执行如下指令:

rpm -qa |grep -i mariadb

执行后的结果如下:

mariadb-libs-5.5.56-2.el7.x86_64

安装mysql的时候可能会和MariaDB有冲突,所以需要执行如下命令将其删除:


rpm -e --nodeps  mariadb-libs-5.5.56-2.el7.x86_64

5) 依次执行下面的安装指令,安装4个rpm文件


rpm -ivh mysql-community-common-5.7.29-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.29-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.29-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.29-1.el7.x86_64.rpm

发现在执行最后一条命令时报错,错误信息如下:

error: Failed dependencies:
  libnuma.so.1()(64bit) is needed by mysql-community-server-5.7.29-1.el7.x86_64
  libnuma.so.1(libnuma_1.1)(64bit) is needed by mysql-community-server-5.7.29-1.el7.x86_64
  libnuma.so.1(libnuma_1.2)(64bit) is needed by mysql-community-server-5.7.29-1.el7.x86_64

在网上查了一下资料,发现是没有安装numactl镜像包,执行如下命令安装

yum -y install numactl

然后再次执行如下命令:

rpm -ivh mysql-community-server-5.7.29-1.el7.x86_64.rpm

这次终于安装成功!

3 启动Mysql服务并修该root用户登录密码

1) 首先执行如下指令将mysql添加到系统服务中去:

systemctl start mysqld.service

2) 执行如下指令启动mysql服务:

service mysqld start

可通过下面的命令查看mysql服务器的运行状态:

service mysqld status

控制台中"Active: active (running)"显示mysql服务已处于运行状态

4 修改Mysql服务root账户密码,并设置远程客户端可连接

1) 由于Mysql服务首次启动时的密码是临时分配的,存在于日志文件中,因此需要执行如下命令查看mysql的默认配置文件位置:


mysqld  --verbose --help |grep -A 1 'Default options'

查到系统将按以下优先级顺序读取mysql配置文件中的默认属性

/etc/my.cnf  
/etc/mysql/my.cnf  
/usr/etc/my.cnf 
~/.my.cnf

我们先查看/etc/my.cnf  文件中的内容,看能否找到mysql启动日志文件配置

cat /etc/my.cnf

可以看到mysql的启动日志文件为 /var/log/mysqld.log,因此执行如下命令查看日志文件

cat  /var/log/mysqld.log

查到root用户首次连接本地Mysql服务时用到的密码为:L3Pkw+(wegEQ

2) 使用上一步查到的临时密码登录mysql服务,登录成功后改登录root用户密码

修改用户登录密码的sql脚本为:set password = password('你要设置的密码'),如果当前密码设置提示策略太简单了,就点击下面这篇博文进行密码规则设置

https://blog.csdn.net/qq_37906257/article/details/83550058

4) 为了方便使用Navicat等数据库软件远程连接,需要开启外部远程访问权限,而不仅仅限制在本机连接

在服务端执行如下sql语句,给root用户赋予任何主机使用root账号都能连接Mysql服务器的权限

mysql-> grant all privileges on *.* to 'root'@'%' identified by '<password>';

5) 修改/etc/my.cnf配置文件中的bind_address值为0.0.0.0


vim /etc/my.cnf

修改完成后按esc键回车后输入: wq!保存退出

6) 防火墙开放mysql 3306端口

  执行如下命令查看防火墙是否开启

systemctl status firewalld

发现服务器防火墙是开启的,然后依次执行下面的两条命令开放3306端口,并刷新防火墙

firewalld-cmd --zone=public --add-port=3306/tcp --permanent
firewalld-cmd --reload

然后执行netstat -anpt命令查看服务器所有开放监听的端口,看是否包含3306端口:

可以看到3306端口处于被监听状态

7) 通过腾讯云助手小程序进入购买的云服务器管理界面,在安全组中添加入Mysql3306端口的入站规则(很多小伙伴和笔者一样,都是因为没有在云服务器实例安全组中添加入站规则才导致的远程navicat连接Mysql服务器是一直报未知错误),首先从微信进入腾讯云助手公众号,进入云服务器,添加mysql数据库3306端口入站规则步骤图如下:

8) 执行systemctl restart mysqld命令重启mysql服务

9) 使用Navicat客户端程序远程连接云服务器上的mysql

5 小结

    本文主要讲述了云服务上Linux系统下mysql5.7.29的下载、安装,数据库用户密码重置、给root用户配置所有客户机可连接云服务器上mysql服务的权限,并使用防火墙相关命令开放了3306端口;通过在云服务实例的安全组设置中添加Mysql3306端口的入站规则解决了很多同行小伙伴反映的无法使用Navicat客户端远程连接云服务器上的mysql服务的问题。

 

6 参考文献

1) centos7安装Mysql5.7.24教程;

    链接:https://blog.csdn.net/qq_37906257/article/details/83550058

2) MySQL在本地能连接上,远程连接不上的解决办法;

    链接:https://jingyan.baidu.com/article/380abd0a3aef431d90192c33.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
第11章 邮件服务器配置 《Linux服务器配置与管理》教学课件—第-11-章--MySQL-服务器配置全文共59页,当前为第1页。 目录 11.6 数据库的备份与恢复 11.7 任务实战 11.5 MySQL 基本使用 11.4 MySQL 客户端 11.2 MySQL 软件的安装与运行 11.1 MySQL 简介 11.3 MySQL 服务器的配置与优化 《Linux服务器配置与管理》教学课件—第-11-章--MySQL-服务器配置全文共59页,当前为第2页。 MySQL 简介 11.1 《Linux服务器配置与管理》教学课件—第-11-章--MySQL-服务器配置全文共59页,当前为第3页。 MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle公司旗下的产品。由于 MySQL 性能高、成本低、可靠性好,已经成为目前非常流行的开源数据库,因此 MySQL 被广泛地应用在中小型网站中。随着 MySQL 的不断发展,它逐渐被用于更多大型集群网站和应用中,比如维基百科、Google 和 Facebook 等网站。非常流行的开源软件组合 LAMP 中的"M"指的就是 MySQL。 11.1 MySQL 简介 《Linux服务器配置与管理》教学课件—第-11-章--MySQL-服务器配置全文共59页,当前为第4页。 MySQL软件的安装与运行 11.2 《Linux服务器配置与管理》教学课件—第-11-章--MySQL-服务器配置全文共59页,当前为第5页。 1.添加系统 MySQL 5.7 仓库 CentOS 7系统默认仓库不再提供MySQL软件包,取而代之的是MySQL的分支——MariaDB。所以为了安装MySQL,需要添加一个yum仓库,MySQL官方提供了一个RPM软件包来创建yum仓库,执行如下命令进行安装: [root@kangvcar ~]# rpm -ivh https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm 11.2 MySQL软件的安装与运行 《Linux服务器配置与管理》教学课件—第-11-章--MySQL-服务器配置全文共59页,当前为第6页。 2.启用仓库 在MySQL 5.7仓库安装完成后,会在"/etc/yum.repos.d/"目录下生成两个文件,即mysql-community.repo文件和mysql-community-source.repo文件,我们主要查看mysql-community.repo文件中的配置,在该文件中默认会包含几个版本(如mysql55-community、mysql56-community、mysql57-community、mysql80-community)的仓库条目以方便我们使用指定版本的MySQL。 此处选择安装MySQL 5.7,我们需要检查mysql-community.repo文件以确保mysql57-community条目下的enabled参数设置为1,命令如下: [root@kangvcar ~]# grep -A5 'mysql57' /etc/yum.repos.d/mysql-community.repo [mysql57-community] name=MySQL 5.7 Community Server baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/ enabled=1 ### 将参数的值设置为1,并将其他版本条目下的enabled参数的值设置为0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql 在yum仓库配置完成后,可以使用如下命令进行验证: [root@kangvcar ~]# yum clean all ### 清除yum缓存[root@kangvcar ~]# yum repolist ### 检查yum源是否正常 11.2 MySQL软件的安装与运行 《Linux服务器配置与管理》教学课件—第-11-章--MySQL-服务器配置全文共59页,当前为第7页。 3.安装 mysql-server [root@kangvcar ~]# yum -y install mysql-server 在执行该命令后,会安装mysql-server(服务器端软件)和mysql-client(客户端软件) 4.启动 MySQL 服务 [root@kangvcar ~]# systemctl start mysqld ### 启动 MySQL 服务器 [roo

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

heshengfu1211

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值