目录
引言:为什么选择二进制安装?
MySQL官方提供的二进制版本(Binary Distribution)相比源码编译安装具有部署快速、依赖简单的优势。本文将手把手带您在CentOS 7.9上完成MySQL 5.7.43的完整部署。
1 环境准备
1.1 基础环境检查
操作系统:CentOS Linux release 7.9.2009 (Core)
MySQL版本:5.7.43
系统内存:4GB(虚拟机)
存储空间:20GB
安装包:mysql-5.7.43-el7-x86_64.tar.gz
- 验证命令
cat /etc/redhat-release
free -h
df -h
1.2 系统安全设置
- 防火墙操作
systemctl stop firewalld
systemctl disable firewalld
- SELinux配置
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
grep SELINUX /etc/selinux/config
- 时区设置
mv /etc/localtime /etc/localtime.bak
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
2 系统优化配置
2.1 磁盘调度策略
# 针对数据库,建议用deadline方式,具体如下
cat /sys/block/sda/queue/scheduler
noop [deadline] cfq
[root@node-1 ~]# cat /sys/block/sda/queue/scheduler
noop [deadline] cfq
[root@node-1 ~]#
2.2 系统资源限制
vi /etc/security/limits.conf
# 编辑该文件,添加如下内容
* soft nofile 10240
* hard nofile 10240
* soft noproc 10240
* hard noproc 10240
3 mariadb删除
# 这里我之前已经删除过
[root@node-1 ~]# yum -y remove mariadb*
Loaded plugins: fastestmirror, langpacks
No Match for argument: mariadb*
No Packages marked for removal
[root@node-1 ~]#
4 依赖包安装
# 安装命令
yum install -y libaio numactl
5 MySQL二进制安装包下载
网址:https://downloads.mysql.com/archives/community/
6 MySQL安装部署
6.1 解压安装包
# 解压安装包并移动
tar -zxvf mysql-5.7.43-el7-x86_64.tar.gz
mkdir -p /usr/local/mysql
mv mysql-5.7.43-el7-x86_64/* /usr/local/mysql
6.2 创建用户以及用户组
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
6.3 创建数据、日志相关目录
mkdir -p /data/mysql/{data,log,tmp,backup}
chown -R mysql:mysql /data/mysql
chmod -R 750 /data/mysql
6.4 初始化MySQL
cd /usr/local/mysql
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
#初 始化完成后,会生成一个临时密码,请记录,后面修改密码时需要用到(在A temporary password行最后处)
6.5 配置MySQL配置文件
vim /etc/my.cnf
# 创建编辑MySQL配置文件/etc/my.cnf,并添加以下内容
cat >/etc/my.cnf<<EOF
[mysqld]
basedir=/usr/local/mysql
datadir=/data/mysql/data
socket=/tmp/mysql.sock
log-error=/data/mysql/log/mysql.log
pid-file=/data/mysql/mysql.pid
# 日志文件配置
slow_query_log = 1
slow_query_log_file = /data/mysql/log/slow.log
long_query_time = 2
log_bin = /data/mysql/log/mysql-bin.log
expire_logs_days = 7
# 设置 server-id
server-id=2
# 临时文件目录
tmpdir=/data/mysql/tmp
[client]
socket=/tmp/mysql.sock
EOF
6.6 添加mysqld到系统服务
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
6.7 创建mysqld的systemd服务文件
vim /usr/lib/systemd/system/mysqld.service
# 创建文件mysqld.service,并添加如下内容
cat >/usr/lib/systemd/system/mysqld.service<<EOF
[Unit]
Description=MySQL Server
After=network.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
ExecStop=/usr/local/mysql/bin/mysqladmin -u root -p shutdown
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
6.8 启动MySQL
[root@node-1 mysql]# systemctl start mysqld
[root@node-1 mysql]# systemctl status mysqld
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled; vendor preset: disabled)
Active: active (running) since Sat 2025-03-01 20:01:33 CST; 8s ago
Main PID: 13686 (mysqld)
Tasks: 27
Memory: 133.9M
CGroup: /system.slice/mysqld.service
└─13686 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
Mar 01 20:01:33 node-1 systemd[1]: Started MySQL Server.
[root@node-1 mysql]#
6.9 配置MySQL环境变量
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile
source /etc/profile
6.10 设置开机自启动
chkconfig --add mysqld
chkconfig mysqld on
6.11 修改密码
# 登录数据库,使用6.4初始化时生成的临时密码登录MySQL
[root@node-1 mysql]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.43-log
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
# 执行SQL修改密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_passwd';
Query OK, 0 rows affected (0.00 sec)
mysql>
7 验证
# 使用修改后的密码登录并查看数据库版本
[root@node-1 mysql]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.43-log MySQL Community Server (GPL)
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> select version();
+------------+
| version() |
+------------+
| 5.7.43-log |
+------------+
1 row in set (0.00 sec)
mysql>
# 可以正常登录并查看到数据库版本信息,安装正常
8 常见问题
8.1 忘记临时密码
# 当忘记初始化的临时密码时,请删除数据目录并重新初始化
rm -rf /data/mysql/data/*
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
9 总结
经过以上步骤,我们便成功的完成了MySQL 5.7.43的二进制安装和部署。
如果你在安装过程中遇到任何问题,欢迎在评论区留言,我会尽力为你解答!