CentOS 8 安装MySQL 8,并在局域网内可访问

安装过程

我们可以通过cmd进行安装,因为CentOS8有一个软件管理器,它能够提供mysql8的安装方法(需要有root权限的用户)。
首先找到cmd:

在这里插入图片描述
进入cmd之后,我们可以查看一下自己系统中有没有安装过mysql其他版本,有的话需要先卸载,再安装新版本

输入以下命令进行查看:

rpm -qa | grep mysql

如果什么都没有显示,而是紧接着让你输入新的指令,说明你的电脑本身没有自带任何关于mysql的服务。
接下来我们就可以输入以下指令开始安装操作:

sudo dnf install @mysql

在这里插入图片描述
注意:你所使用的用户一定要具备root权限,否则“sudo”操作无法执行
输入用户密码,进行安装操作,会显示出各种需要安装的软件包,接下来只需要确认,yes即可:
在这里插入图片描述
下载完毕,需要你继续确认安装:
在这里插入图片描述
确认之后稍微等待,会提示你安装成功:
在这里插入图片描述
这时我们再次输入指令:

rpm -qa | grep mysql

会发现终端显示出已经安装好的mysql版本信息:
在这里插入图片描述
之后我们可以输入以下命令来启动mysql服务,并让其以后可以自动启动:

 sudo systemctl enable --now mysqld

同样会要求你再次输入密码
在这里插入图片描述
启动后,我们可以检查mysql服务是否正在运行,输入:

sudo systemctl status mysqld

可以看到,mysql运行状态信息被显示出来,“active”表示正在运行。
在这里插入图片描述

之后我们需要进行一些安全设置操作,例如设置根密码。
输入以下指令运行mysql_secure_installation脚本:

sudo mysql_secure_installation

它会询问你是否要设置有效密码,这里建议选择yes,不然都是不需要密码就可以登录服务器,这样十分不安全:
在这里插入图片描述
之后会让你设置密码安全等级:
“0”表示最低级密码安全设置,它对于你设置密码除了长度要求外,没有任何限制。
“1”表示中档密码安全设置,它不仅要求长度,还要求大小写混合,以及特殊符号。
“2”表示最高级密码安全设置,它额外要求一个索引文件作为密码(我觉得平时自己搞,没必要整这个)
这里我就我选择了0,只是做个简单演示。
在这里插入图片描述

接着它就让你设置密码,并确认:
注意:你输入的密码他不会显示出来,不要以为是自己没输入进去
在这里插入图片描述
接下来会显示你设置的密码的密码强度,并且询问你是否确认密码,输入yes来确认:
在这里插入图片描述
之后会询问你是否要删除匿名用户,这里选择yes就可以:
在这里插入图片描述
下一步询问你是否要让root用户只允许本地连接,这里同样建议yes:
在这里插入图片描述
最后询问你是否要删除本地测试数据库,以及是否重新加载特权表,建议删除测试数据库,并重新加载特权表(这里我为了测试后面能否局域网连接,所以没删除测试数据库):
在这里插入图片描述
设置完毕,我们就可以登录mysql服务了,通过如下指令:

mysql -u 用户名 -p

之后会让你输入密码,密码正确便能成功登录
在这里插入图片描述

局域网访问

首先咱们要先查看一下有哪些数据库,并确定要允许局域网访问的库 (每一个数据库都是单独授权的!!!)
利用指令(注意结尾分号)显示所有的数据库:

show databases;

在这里插入图片描述
比如这里我想让mysql这个数据库可以被远程访问,第一件事先进入数据库,利用如下指令:

use 数据库名;

这块我忘打分号了,最好把分号加上
在这里插入图片描述
进入数据库后,首先查看一下此库的用户列表,并可以显示他们的登录权限,利用如下指令(只有进入某一个数据库后才能查看):

select user,host from user;

在这里插入图片描述
注意:此处的“host”一栏表示这个账号允许进行登录操作的位置,显示“localhost”表明只允许这个账号本地登录,不允许在其他机器上登录,而“%”是一个通配符,表示这个账号可以在任何地方进行登录,当然我们也可以进行IP地址限定,比如限定它只能从“192.168.%.%”的地址中登录(表示只允许开头为192.168的IP地址登录,后面两部分是什么都可以)

我这里是已经创建好了一个用户名叫“cat”的用户,这里说明一下如何创建这样一个用户。
输入以下指令创建用户:
注意:此处的密码设置需要符合之前设定的密码安全等级,不然会报错

CREATE USER '用户名'@'host范围' IDENTIFIED BY '密码';

在这里插入图片描述
我们创建完用户后,还可以用root用户给这个新创建的用户授权,比如授权他进行对数据库内表格的“删除”“创建”等一系列操作,具体授权方法可以去网上查一下,在这里不是重点。
当然,我们也可以选择更改其他已有用户的登录地点限制,比如将用户“root”的“localhost”改成“%”,我们甚至可以创建同一个用户名不同密码的存在,根据登陆者使用的密码不同,他们所允许登录的地点也不相同,下面有个关于这个机制的解释连接
https://blog.csdn.net/highsinging/article/details/53817485

我们创建好新的用户之后不要忘记用以下指令刷新授权,否则无法生效:

FLUSH PRIVILEGES;

在这里插入图片描述
之后重启mysql服务,直接关闭,然后再次打开终端输入用户名密码即可,我不清楚这一步是否一定需要,但在我这里是这样,否则会出现连接异常,而且根本无法解决。

防火墙设置

至此,我们设置好了mysql的远程配置,但我们还需要设置CentOS的网络防火墙,否则局域网内其他机器依然无妨登录数据库。
我们再次打开终端,然后输入以下指令打开防火墙3306端口(首先要确保防火墙是开启的状态):

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

在这里插入图片描述
下一步非常关键,我们要“reload”让配置立即生效,输入以下代码:

firewall-cmd --reload

如果你不输入这个,防火墙设置不会更新,很多教程都没有提这一点,会导致迷之错误,无法解决。
关于CentOS防火墙其他设置,请看:
Centos8防火墙配置、端口、进程管理

在这里插入图片描述
可以看到,如果我不进行“reload”操作,当我进行端口询问的时候,此端口还是关闭的,“reload”完毕,他才开启。

之后我们需要查看一下本机IP地址,这样其他局域网用户才可以找到本机,并登录数据库:
在这里插入图片描述
我的IP地址是“192.168.197.128”,主机名为CentOS8.1。

接下来试一下在我的Windows电脑上登录数据库,输入:

mysql  -h 服务器IP地址 -u 用户名 -p

之后输入密码便能成功登录:
在这里插入图片描述

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值