MySQL 26.7.0 基于 Linux 8 二进制安装部署指南
📢📢📢📣📣📣
哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验
一位上进心十足的【大数据领域博主】!😜😜😜
中国DBA联盟(ACDU)成员,目前服务于工业互联网
擅长主流Oracle、MySQL、PG、高斯及GP 运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️
文章目录
- @[TOC](文章目录) 一、环境准备
- 1. 操作系统确认
- 二、关闭防火墙和 SELinux
- 防火墙
- SELinux
- 三、安装依赖
- 四、创建 MySQL 用户
- 五、安装二进制包
- 六、创建数据目录
- 七、配置环境变量
- 八、配置 my.cnf
- 九、初始化数据库
- 十、配置 systemd 服务
- 十一、启动 MySQL
- 十二、修改 root 密码
- 十三、创建远程用户
- 十四、验证部署
- 查看进程
- 查看端口
- 登录测试
- 十五、生产环境优化
- 文件句柄
- 内核参数
- 十六、最终检查清单
- 十七、后续生产部署建议
一、环境准备
文章目录
- @[TOC](文章目录) 一、环境准备
- 1. 操作系统确认
- 二、关闭防火墙和 SELinux
- 防火墙
- SELinux
- 三、安装依赖
- 四、创建 MySQL 用户
- 五、安装二进制包
- 六、创建数据目录
- 七、配置环境变量
- 八、配置 my.cnf
- 九、初始化数据库
- 十、配置 systemd 服务
- 十一、启动 MySQL
- 十二、修改 root 密码
- 十三、创建远程用户
- 十四、验证部署
- 查看进程
- 查看端口
- 登录测试
- 十五、生产环境优化
- 文件句柄
- 内核参数
- 十六、最终检查清单
- 十七、后续生产部署建议
1. 操作系统确认
cat /etc/redhat-release
uname -r
适用环境:
RHEL 8
Rocky Linux 8
AlmaLinux 8
CentOS Stream 8
安装方式:
官方 Generic Binary Tarball
不使用 RPM
不源码编译
规划:
项目 路径
软件目录 /usr/local/mysql 数据目录 /data/mysql 端口 3306
二、关闭防火墙和 SELinux
防火墙
systemctl stop firewalld
systemctl disable firewalld
SELinux
查看:
getenforce
临时关闭:
setenforce 0
永久修改:
vim /etc/selinux/config
设置:
SELINUX=disabled
三、安装依赖
echo “[localREPO]” >> /etc/yum.repos.d/my.repo
echo “name=localhost8” >> /etc/yum.repos.d/my.repo
echo “baseurl=file:///mnt/BaseOS” >> /etc/yum.repos.d/my.repo
echo “gpgcheck=0” >> /etc/yum.repos.d/my.repo
echo “enabled=1” >> /etc/yum.repos.d/my.repo
echo “[localREPO_APP]” >> /etc/yum.repos.d/my.repo
echo “name=localhost8_app” >> /etc/yum.repos.d/my.repo
echo “baseurl=file:///mnt/AppStream” >> /etc/yum.repos.d/my.repo
echo “gpgcheck=0” >> /etc/yum.repos.d/my.repo
echo “enabled=1” >> /etc/yum.repos.d/my.repo
mount /dev/cdrom /mnt/ >/dev/null 2>&1
dnf install -y \
libaio \
numactl \
perl \
net-tools \
tar \
wget \
vim \
lsof
四、创建 MySQL 用户
groupadd mysql
useradd \
-r \
-g mysql \
-s /bin/false \
mysql
五、安装二进制包
进入软件目录:
mkdir -p /soft
cd /soft
下载 MySQL 二进制包:
wget https://dev.mysql.com/get/Downloads/MySQL-26.7/mysql-26.7.0-linux-glibc2.28-x86_64.tar.xz
解压:
tar -xf mysql-26.7.0-linux-glibc2.28-x86_64.tar.xz \
-C /usr/local
重命名:
cd /usr/local
mv mysql-26.7.0-linux-glibc2.28-x86_64 mysql
六、创建数据目录
mkdir -p /data/mysql
授权:
chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /data/mysql
七、配置环境变量
编辑:
vim /etc/profile
增加:
export MYSQL_HOME=/usr/local/mysql
export PATH=M Y S Q L _ H O M E / b i n : MYSQL\_HOME/bin:MYSQL_HOME/bin:PATH
生效:
source /etc/profile
验证:
mysql -V
八、配置 my.cnf
文件:
vim /etc/my.cnf
示例:
[mysqld]
user=mysql
port=3306
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/data/mysql/mysql.sock
pid-file=/data/mysql/mysql.pid
character-set-server=utf8mb4
collation-server=utf8mb4_0900_ai_ci
# error log
log-error=/data/mysql/mysql-error.log
# slow sql
slow_query_log=ON
slow_query_log_file=/data/mysql/mysql-slow.log
long_query_time=1
# binlog
server-id=1
log-bin=/data/mysql/mysql-bin
# InnoDB
default-storage-engine=INNODB
innodb_buffer_pool_size=4G
innodb_redo_log_capacity=2G
innodb_flush_log_at_trx_commit=1
innodb_file_per_table=ON
# connection
max_connections=1000
max_connect_errors=10000
skip-name-resolve
[client]
port=3306
socket=/data/mysql/mysql.sock
九、初始化数据库
执行:
cd /usr/local/mysql
-如果初始化失败才执行
rm -rf /data/mysql/*
bin/mysqld \
–initialize \
–user=mysql \
–basedir=/usr/local/mysql \
–datadir=/data/mysql
查看临时密码:
grep password /data/mysql/mysql-error.log
十、配置 systemd 服务
创建:
vim /etc/systemd/system/mysql.service
内容:
[Unit]
Description=MySQL Server
Documentation=https://dev.mysql.com/doc/
After=network.target
After=syslog.target
[Service]
Type=notify
User=mysql
Group=mysql
# MySQL安装目录
Environment=“MYSQL_HOME=/usr/local/mysql”
ExecStart=/usr/local/mysql/bin/mysqld \
–defaults-file=/etc/my.cnf
# 优雅停止
ExecStop=/usr/local/mysql/bin/mysqladmin \
–defaults-file=/etc/my.cnf \
–socket=/data/mysql/mysql.sock \
shutdown
# 重启策略
Restart=on-failure
RestartSec=5
# 文件句柄
LimitNOFILE=65535
# 内存限制
LimitMEMLOCK=infinity
# 进程限制
TasksMax=infinity
[Install]
WantedBy=multi-user.target
刷新:
systemctl daemon-reload
十一、启动 MySQL
启动:
systemctl start mysql
查看:
systemctl status mysql
开机启动:
systemctl enable mysql
十二、修改 root 密码
登录:
mysql -uroot -p
修改:
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘root’;
FLUSH PRIVILEGES;
十三、创建远程用户
CREATE USER ‘admin’@‘%’
IDENTIFIED BY ‘Admin@123456’;
GRANT ALL PRIVILEGES ON *.*
TO ‘admin’@‘%’
WITH GRANT OPTION;
FLUSH PRIVILEGES;
十四、验证部署
查看进程
ps -ef | grep mysqld
查看端口
ss -lntp | grep 3306
登录测试
mysql -h127.0.0.1 -uadmin -p
十五、生产环境优化
文件句柄
vim /etc/security/limits.conf
增加:
mysql soft nofile 65535
mysql hard nofile 65535
内核参数
vim /etc/sysctl.conf
增加:
vm.swappiness=10
fs.file-max=1000000
net.core.somaxconn=65535
生效:
sysctl -p
十六、最终检查清单
检查项目 命令
MySQL版本 mysql -V 服务状态 systemctl status mysql 监听端口 ss -lntp 数据目录 ls /data/mysql 远程连接 mysql -h IP
十七、后续生产部署建议
建议继续完善:
MySQL 参数优化模板
GTID 主从复制
MGR 高可用集群
XtraBackup 备份恢复
性能监控体系
慢 SQL 优化体系
