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

本文详细介绍在CentOS8系统中使用软件管理器安装MySQL8的方法,包括安装过程、启动服务、安全设置及远程访问配置。通过设置root密码、调整用户登录权限、开放防火墙端口等步骤,实现局域网内的远程数据库访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装过程

我们可以通过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

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

<think>好的,我现在需要帮助用户配置MySQL允许局域网内的其他设备访问。首先,我得回忆一下之前学过的相关知识,以及用户提供的引用内容。用户已经给出四个引用,里面提到了修改用户权限、更新host字段、授权命令、flush privileges,还有修改bind-address为0.0.0.0。可能需要按照步骤一步步来。 首先,我应该确认用户的需求:允许局域网IP访问。通常,MySQL默认可能只监听localhost,所以需要调整配置。根据引用3,需要找到配置文件,修改bind-address为0.0.0.0,这样MySQL会监听所有接口,包括局域网。但用户是局域网,可能还需要设置用户权限,让用户可以从任意主机连接。 然后,用户需要登录数据库,修改root用户的host为'%',允许任何主机连接,如引用1中的步骤。需要执行update user set host='%' where user='root'; 但要注意,这可能存在安全风险,所以用户可能需要更谨慎的设置,比如限制为特定IP段,但用户的需求是局域网,可能用通配符更方便。 接下来是授权,使用GRANT命令,赋予权限,如引用1中的GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码'; 这里需要提醒用户替换密码,且可能还需要FLUSH PRIVILEGES; 使权限生效,如引用2提到的。 另外,防火墙的问题可能需要考虑,用户是否需要在服务器上开放3306端口,否则即使MySQL配置正确,防火墙可能阻止连接。但用户提供的引用中没有提到这点,可能需要补充说明。 然后,步骤大致是:修改配置文件中的bind-address,更新用户权限,授权,刷新权限,最后重启MySQL服务或者重新加载配置。但根据引用3,修改配置文件后可能需要重启MySQL服务,但用户可能不想重启,所以用flush privileges是否足够?或者是否需要同时重启? 比如,修改bind-address通常需要重启服务,而权限修改用flush就可以。所以用户可能需要先改配置文件,然后重启服务,再处理用户权限。需要分步骤说明。 现在整理步骤: 1. 修改MySQL配置文件,设置bind-address为0.0.0.0,确保端口3306开放。 2. 登录MySQL,更新用户表,允许root用户从任意主机连接。 3. 授予权限刷新权限。 4. 检查防火墙设置,允许3306端口的入站连接。 每个步骤需要详细说明,比如如何找到配置文件,不同系统下的路径可能不同。例如,Linux下可能是/etc/mysql/mysql.conf.d/mysqld.cnf或my.cnf,而Windows可能是my.ini。用户可能需要查找正确的文件,如引用3提到的.ini或.cnf文件。 然后,在MySQL中执行命令,如use mysql; select user, host; 查看当前设置。如果root的host是localhost,需要改为%。然后执行update语句,再授权,flush privileges。 最后,测试连接是否成功,可以用另一台设备使用mysql客户端连接,或者使用telnet检查端口是否可达。 可能的问题点:用户可能不知道配置文件的路径,或者修改后忘记重启服务。或者防火墙阻止了连接,导致配置正确但无法访问。所以需要提醒用户检查这两点。 现在,根据用户提供的引用内容,引用1中的步骤是:登录数据库,选择mysql数据库,检查user和host,如果没有%,则更新,然后授权,flush。引用3提到修改bind-address,引用4可能提到官方文档的配置服务器监听部分。所以综合这些,配置步骤应该包括这两个部分:修改监听地址和用户权限。 所以,回答的结构应该是分步骤,先修改配置文件,然后处理用户权限,最后处理防火墙,测试。 可能的相关问题包括如何检查MySQL是否监听正确地址,如何处理防火墙,如何限制访问权限到特定IP段,或者如何创建新用户而不是用root,这些可以作为相关问题。</think>### 配置MySQL允许局域网IP访问的步骤 #### 1. **修改MySQL配置文件,允许监听局域网请求** - 找到MySQL配置文件: - **Linux**:通常为 `/etc/mysql/mysql.conf.d/mysqld.cnf` 或 `/etc/mysql/my.cnf` - **Windows**:一般为 `my.ini`,位于MySQL安装目录下 - 在 `[mysqld]` 部分添加或修改以下参数: ```ini bind-address = 0.0.0.0 # 允许监听所有网络接口 ``` - 保存文件**重启MySQL服务**使配置生效: - Linux:`sudo systemctl restart mysql` - Windows:通过服务管理器重启MySQL服务[^3][^4]。 #### 2. **配置用户权限,允许远程连接** - 登录MySQL: ```bash mysql -u root -p ``` - 切换到 `mysql` 数据库检查用户权限: ```sql USE mysql; SELECT user, host FROM user; -- 查看root用户的host是否为'%'(允许任意IP) ``` - 如果root的`host`字段为`localhost`,执行以下命令修改: ```sql UPDATE user SET host='%' WHERE user='root'; -- 允许root从任意IP登录 FLUSH PRIVILEGES; -- 立即生效[^1][^2] ``` - **授权**(若需更严格控制,可替换`%`为具体IP段,如`192.168.1.%`): ```sql GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码' WITH GRANT OPTION; FLUSH PRIVILEGES; -- 权限刷新[^1] ``` #### 3. **检查防火墙设置** - 确保服务器防火墙开放**3306端口**(MySQL默认端口): - Linux: ```bash sudo ufw allow 3306/tcp # Ubuntu/Debian sudo firewall-cmd --permanent --add-port=3306/tcp # CentOS ``` - Windows:在“高级安全防火墙”中添加入站规则,允许TCP端口3306。 #### 4. **测试连接** - 在局域网内的其他设备上使用以下命令连接: ```bash mysql -h 服务器IP -u root -p ``` - 若连接失败,可通过 `telnet 服务器IP 3306` 检查端口是否可达。 --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值