当前位置: 首页 > article >正文

[Linux]Mysql9.0.1服务端脱机安装配置教程(redhat)

前言

本教程适用于在yum源不可用的LInux主机上安装Mysql的场景。
以redhat系主机做操作示例,debian系主机可参照步骤,将对应的rpm -ivh命令换成dpkg -i

1. 官网下载安装包

https://dev.mysql.com/downloads/mysql/

1.1 版本分类

MySQL Enterprise Edition:企业版(收费)
MySQL Cluster CGE:高级集群版(收费)
MySQL Community Edition:社区版(开源免费,但官方不提供技术支持)
一般我们使用社区版的。
在该页面中,可以选择5.0到9.0的各历史版本:https://downloads.mysql.com/archives/community/
安装版本选择

1.2 查看主机版本

我使用的是redhat系的Linux服务器,因此Operating System(操作系统)一项选择“RedHat”。
OS Version一项有以下多个版本可选:
OS Version版本选择
我们进入主机,输入以下命令查看版本号。

uname -a

你会看到类似以下的内容:

Linux 4.19.0-477.15.5.el8.mylinux.x86_64 #1 SMP Tue Aug 22 18:16:37 CST 2023 x86_64 x86_64 x86_64 GNU/Linux

其中的el8表明你的主机是"Linux 8"的,x86_64,则对应选择x86,64-bit

1.3 选择对应的版本进行下载

至此,我们选择了对应的版本。
筛选出来的安装包有大约20个,我们根据以下关键字,使用Ctrl+F快捷键,快速筛选下载6个安装包。

  • mysql-community-client-9.0.1-1.el8.x86_64.rpm
  • mysql-community-client-plugins-9.0.1-1.el8.x86_64.rpm
  • mysql-community-common-9.0.1-1.el8.x86_64.rpm
  • mysql-community-icu-data-files-9.0.1-1.el8.x86_64.rpm
  • mysql-community-libs-9.0.1-1.el8.x86_64.rpm
  • mysql-community-server-9.0.1-1.el8.x86_64.rpm

注:虽然我们只想安装Mysql服务端(即Mysql-server),但它依赖于其他的包,如果单独安装mysql-server,也会提示你安装其他的包,如下图所示。
安装mysql-server需要其他包

二、在服务器上安装

2.1 按顺序安装

将6个安装包上传到服务器上。按照如下顺序安装。

sudo rpm -ivh mysql-community-common-9.0.1-1.el8.x86_64.rpm 
sudo rpm -ivh mysql-community-client-plugins-9.0.1-1.el8.x86_64.rpm 
sudo rpm -ivh mysql-community-libs-9.0.1-1.el8.x86_64.rpm
sudo rpm -ivh mysql-community-client-9.0.1-1.el8.x86_64.rpm
sudo rpm -ivh mysql-community-icu-data-files-9.0.1-1.el8.x86_64.rpm
sudo rpm -ivh  mysql-community-server-9.0.1-1.el8.x86_64.rpm

2.2 安装完成后初步检查安装情况

输入如下命令

whereis mysql
whereis mysqld

如果返回的路径是空的,那么说明安装还有问题,请自己查看安装过程中的报错,常见的是安装顺序不对引起的安装失败。
如果返回了路径非空,说明mysql已经安装上了,如下图所示。
mysql安装情况初步检查

三、参数配置

3.1 创建data目录

mkdir ~/data

我计划把路径设置在家目录的data路径下,在这个路径新建好目录。

注:如果你新建到了别的目录,请注意使用ls -l查看目录的所有者和所有组是否为当前用户,否则可能会因为数据无权限写入导致的异常。
修改所有者所有组使用以下命令:

chown -R 当前用户:当前用户 data路径

假如我的用户名为wingaso,data路径为/home/wingaso/data,那么命令为:

chown -R wingaso:wingaso /home/wingaso/data

3.2 配置my.cnf

sudo vi /etc/my.cnf

将其中的datadir改为指向刚刚创建的data目录路径。
log-error指定了mysqld的日志路径,在这个日志中记录了mysql服务端启动与运行时的相关异常信息,可以改到用户家目录下,或者保持原路径不变也可以。
注:修改该文件需要sudo权限。

3.3 初始化mysql

mysqld --initialize

这个命令没有返回的内容。我们可以通过ls命令查看data目录是否生成文件,来初步确认命令是否创建成功。

ls data

看到如下内容:
ls查看data路径下的文件
如果使用ls命令查看到data目录下是空的,那么请检查data路径的权限,可参照以下命令进行权限和所有组的更改。

chmod 755 data
chown -R wingaso:wingaso data

3.4 所有者修改

如果你当前用户名是mysql,那么你可以跳过本次操作。
否则必须进行修改,因为mysql安装后默认所有者所有组均为mysql(如下图所示),如果不修改,会导致mysql因权限问题无法正常启动。
默认所有者所有组为mysql
默认所有者所有组为mysql
如下图,所有者问题,会导致sock.lock文件无法创建,mysqld启动失败。
sock.lock文件无法创建

3.4.1 目录/文件所有者修改

cd /var/run/
sudo chown -R wingaso:wingaso mysql*
cd /var/lib/
sudo chown -R wingaso:wingaso mysql*
cd /var/log/
sudo chown -R wingaso:wingaso mysql*

将以上命令粘贴执行即可,注意修改需要sudo权限。
修改后可以通过ls -l命令查看所有者变更情况:

ls -l /var/run/
ls -l /var/lib/
ls -l /var/log/

3.4.2 mysqld.service所有者修改

sudo vi /usr/lib/systemd/system/mysqld.service

这个文件中User和Group默认为"mysql",如果你的当前用户名不是mysql,那么以服务方式启动mysql将会报错。需要将其中的User和Group改为当前用户名,如下图所示。

修改mysqld.service

修改后保存,再使用如下语句重新加载配置。

sudo systemctl daemon-reload

3.5 启动mysql

sudo systemctl restart mysqld

如果上边的步骤都操作无误,那么将会成功运行起来,否则将会出现以下报错。
mysql启动报错

3.5.1 运行报错处理

运行建议命令

sudo systemctl status mysqld.service

你应该会看到类似以下的报错信息
mysqlq启动报错
对于该信息,其中我们只能初步得知是权限问题,但想单从这个报错中看出是哪里的权限问题,简直是天方夜谭。
关键还是得看mysqld.log文件中的详细报错信息。

tail -n 500 /var/log/mysqld.log

注:如果你在配置my.cnf时,已将error-log改为了自定义路径,请在对应路径查看日志信息。

3.6 安全配置

3.6.1 获取初始密码

在运行mysqld --initialize后,初始密码会保存在mysqld.log文件中,通过以下命令可以找出该密码。

grep 'temporary password' /var/log/mysqld.log

执行结果如下图所示。
查找初始密码
注:如果mysqld --initialize执行过多次,那么可能会查找出多个初始密码,应以最后一个初始密码为准。

3.6.2 进行安全配置

sudo mysql_secure_installation

运行该命令,会提示输入密码,将刚刚获取到的初始密码输入,便可进入配置对话。
该命令会对以下几个内容进行设置:

  • 为root用户设置密码
  • 删除匿名账号
  • 取消root用户远程登录
  • 删除test库和对test库的访问权限
  • 刷新授权表使修改生效

请根据实际情况进行设置。
注:如果运行该命令,出现如下报错(Can’t connect to local Mysql server through socket ‘/var/lib/mysql/mysql.sock’),那么一般是mysql没有启动引起的,请参照3.5节启动mysql,再宠幸执行该命令。
运行安全配置报错

四、验证

mysql -uroot -p
<输入密码>
show databases;

如果能够成功登录到mysql并进行数据库操作,说明mysql已经安装完成。安装配置便大功告成了。

五、其他

如果需要主从部署,那么需要在主从主机上按照以上步骤将Mysql安装完成后,再对Mysql进行专门的主从配置。这部分将会在另一篇文章中细说,敬请期待。

参考

MySQL 在 Windows 下安装教程、避坑指南
Mysql安全启动配置向导——mysql_secure_installation(生产环境必做的设置)


http://www.kler.cn/a/471971.html

相关文章:

  • Elixir语言的语法糖
  • Pycharm连接远程解释器
  • 单片机实物成品-010 智能宠物喂食系统(代码+硬件+论文)
  • C++二十三种设计模式之单例模式
  • 小白学Pytorch
  • Java到底是值传递还是引用传递????
  • 无人机低小慢探测难题!
  • 分布式专题(11)之Zookeeper特性与节点数据类型详解
  • Understanding the Lomb–Scargle Periodogram
  • Sphinx 使用指南
  • Eclipse配置Tomcat服务器(最全图文详解)
  • 智能工厂的设计软件 应用场景的一个例子: 为AI聊天工具添加一个知识系统 之25 祖传代码:垂类划分出负责监管控的“三层结构”
  • ArmSoM RK3588/RK3576核心板,开发板网络设置
  • 《Windows基础与网络安全:用户账户管理与安全策略》
  • c#集成npoi根据excel模板导出excel
  • TCP 演进之路:软硬件跷跷板与新征程
  • 农产品智慧物流系统
  • 【NLP高频面题】用RNN训练语言模型时如何计算损失?
  • 【网络安全设备系列】15、安全网关/统一威胁管理(UTM)
  • golang中的迭代器和 iter 包