[数据库][MySQL]MySQL8.0数据库安装参考手册Linux

MySQL8.0数据库安装参考手册Linux

北京致远互联软件股份有限公司

2024年11月更新

组件合规性说明

MySQL数据库提供了开源和商业双许可策略:

注意需要客户选择符合许可的数据库产品线!

前言

本手册提供MySQL8.0系列二进制包安装详细步骤,二进制方案兼容性广,不挑系统,最易于维护,是Linux下最推荐的安装方案。

本示例选择安装MySQL Community Server社区版。

安装前Linux参数优化

预装部署所需的命令:

修改Linux最大进程数最大文件打开数:

通过 vim /etc/security/limits.conf 命令编辑此文件添加以下内容

以上配置完成,reboot命令重启操作系统,重启后执行 ulimit -a 命令检查open files是否都变成65535

以下为临时生效方法:

部署前先关闭selinux:

视频示例

如对手册不理解,可参考在线视频进行学习【MySQL二进制标准化安装 (opens new window)】

安装包准备

下载MySQL二进制包

下载地址:https://dev.mysql.com/downloads/mysql/ (opens new window)

Select Version:选择8.0.x版本

Select Operating System:无论什么Linux系统都选择Linux - Generic

Select OS Version:本演示系统是x86/64位/GLIBC 2.39,于是下载最接近的glibc2.28 x86 64-bit版本

通过uname -a命令来判断当前操作系统芯片和位数;通过ldd --version命令来看glibc版本,下载的安装包glibc尽量<=操作系统的glibc

本案例下载的包名为:mysql-8.0.40-linux-glibc2.28-x86_64.tar.xz
在这里插入图片描述

上传安装包到Linux

用ssh ftp工具将二进制包上传到Linux中,本示例是将二进制包上传到/data目录:
在这里插入图片描述

安装步骤

整个二进制包安装过程可以完全参考MySQL官方文档:https://dev.mysql.com/doc/refman/8.0/en/binary-installation.html (opens new window)

安装libaio

根据MySQL官方手册要求,需要先安装libaio包,不同Linux发行版安装方法不同:

特别提醒:Ubuntu24LTS与22版本的libaio包发生了很大变化,需要参考网上的文档 (opens new window)做调整,否则执行后续MySQL安装时会报错:

卸载MariaDB

确保当前系统下没有MySQL,也没有MariaDB,如果有会影响MySQL安装。

创建mysql用户组和目录

以下命令一句一句执行即可,唯一不同的是tar.xz二进制包和数据目录可能跟项目上有差异,项目上根据自身情况调整:
在这里插入图片描述

创建my.cnf文件

在/etc下创建my.cnf文件,用于管理MySQL的配置:

将以下内容按照项目真实情况做调整后拷贝到/etc/my.cnf里并保存。其中标记有*星号的部分都需要项目上根据实际情况调整:

关于/etc/my.cnf配置,有几个关键信息:

1、数据引擎要求为InnoDB

2、MySQL8字符集要求为utf8mb4,早期MySQL版本可设置为utf8

3、要求不区分表/字段大小写lower_case_table_names=1

4、MySQL8系列,时区默认为美国时区,中国用户若要正常使用,需修改mysql配置文件为default-time-zone=‘+8:00’

5、MySQL5.7或者以上版本,需要设置数据库日志时间匹配系统时区log_timestamps=system

6、innodb_buffer_pool_size参数是非常关键的性能指标,生产库建议按照服务器内存的50%-80%配置

7、本示例开通的是默认3306端口,实际生产环境不要用默认端口,建议改成一个不常用端口,以降低被攻击的概率

初始化MySQL

安装完成后,找到/etc/my.cnf中的log-error参数值,这个参数路径存放了日志,根据这个日志能找到mysql的初始化密码

拷贝类似如下图所示的这串字符串,这个就是初始化MySQL后生成的密码,做好备份,我们需要拿着它登录MySQL:

在这里插入图片描述

启动MySQL

接下来,将 MySQL 的启动脚本复制到系统的初始化脚本目录,以便可以使用标准的服务管理命令来启动、停止和管理 MySQL 服务:

1732089714906.png

以上完成后,执行启动MySQL服务器的命令:

如果是Ubuntu系统,执行service mysqld start,可能遇到Failed to start mysqld.service: Unit mysqld.service not found的错误,此问题在“Ubuntu系统启动脚本特殊处理”章节中处理。

Ubuntu系统启动脚本特殊处理

如果是Ubuntu系统,执行service mysqld start,可能遇到Failed to start mysqld.service: Unit mysqld.service not found的错误,这通常是因为系统使用 systemd 而不是传统的 init.d 脚本来管理服务。在 systemd 系统中,需要创建一个 .service 文件来管理 MySQL 服务。

针对Ubuntu系统,解决方案如下:

以上完成后,按如下方式注册启动mysql:

在这里插入图片描述

登录MySQL并重设密码

执行脚本登录到本地MySQL服务器中:

如果密码含有特殊字符,Bash解释器可能会误解这些特殊字符并且拒绝执行,如下图所示,此时我们只需要将密码通过单引号包裹住即可绕过:

1732206578962.png

登录成功后,修改root密码,并新建帐号用于后续OA的连接管理:

1732089749778.png

在MySQL数据库中,初始化一个空库(如SEEYONV5),用于后续OA使用:

以上完成后,可以通过exit命令退出MySQL,尝试使用自定义的密码登录MySQL,如果成功则说明一切OK。

开启防火墙

数据库服务器涉及信息安全,建议尽量只暴露数据库的端口

客户端连接

如果开启了远程访问,并且放开了防火墙控制,通过数据库连接工具就能远程连接到MySQL服务上:

1732089822138.png

1732089831067.png

日常运维

管理主要文件

通过二进制安装的MySQL目录都由安装人员控制,做升级调整都很方便,如果按照本手册操作,我们只需要关注如下目录即可:

创建空库

以管理员身份进入MySQL执行创建库操作,或通过数据库可视化工具创建,MySQL8所用字符集设置为utf8mb4

备份数据库

如果是协同OA使用,我们可以通过S1工具设置自动备份。

也可以到MySQL服务器bin目录下执行mysqldump导出

导入数据库

如果是S1工具备份,可以把备份包拷贝到测试环境,再使用测试环境的S1还原数据库,特别提醒:务必检查好S1的数据库连接配置,不要覆盖到生产库了。

如果是通过mysqldump导出的.sql脚本,或协同OA的完整all-in-one.sql文件,可以到MySQL服务器bin目录下执行导入。

导入之前,先检查字符集:通过show variables like '%character%'语句查询当前MySQL8的字符集,如果红框都是utf8mb4就OK

1732090370975.png

随后执行导入即可,导入也是按照utf8mb4写入:

迁移mysql数据目录

mysql数据目录由参数datadir指定,默认是在/var/lib/mysql 参数值可以通过 show variables like ‘datadir’; 查询得到 例:假设当前需要把datadir(/var/lib/mysql)迁移至/data/Seryon/mysql/data

迁移步骤:

请根据实际的启停命令操作: systemd管理的mysqld服务可以通过:systemctl stop mysqld 如果是使用的脚本模板,比如:/etc/inid.d/mysql.server stop 或者 /etc/inid.d/mysqld stop

linux环境下,mysql配置文件默认在/etc/my.cnf 或者 /etc/mysql/my.cnf;还有些环境可能是手动指定了配置文件,这种情况可以通过命令 ps -ef|grep mysqld 查看–defaults-file参数后跟的配置文件路径 找到配置文件中mysqld下datadir的参数,修改为/data/Seryon/mysql/data 如果在配置文件中没有找到datadir参数,而实际datadir又不在/var/lib/mysql,考虑可能是启动脚本里面有设置了 提示:修改前请先备份

建议通过rsync命令进行同步,例:rsync -av /var/lib/mysql/* /data/Seryon/mysql/data/* 注意新目录不要放到 /root 下,且拷贝时必须停止mysqld 拷贝完成后,可以将原datadir目录重命名(为了降低风险,禁止直接干掉原datadir,拷贝时也不要直接mv移动替换)

chown -R mysql:mysql /data/Seryon/mysql/data

按原来的方式启动mysqld,并查询datadir的值是否已经修改 运行一段时间之后,确认没有问题,再处理原datadir目录,建议可以压缩备份,不要直接删除

卸载mysql

如需卸载mysql及所有库的数据,则参考如下操作。注意慎重自行!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

awonw

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

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

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

打赏作者

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

抵扣说明:

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

余额充值