在Rocky Linux 9系统中使用二进制包安装MySQL5.7
作者 hxwsq_华 于 2024-12-13 12:39:00.0 发表于 浙江 最近修改于 2025-02-11 14:40:35.0 本文浏览量:134人次
一、说明
1.1 操作系统版本
本文使用的操作系统版本:Rocky Linux 9
cat /etc/rocky-release

1.2 准备工作

二、步骤
2.1 获取MySQL二进制安装包,解压至安装目录并重命名为mysql
wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz
tar -zxf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
mv /usr/local/mysql-5.7.44-linux-glibc2.12-x86_64 /usr/local/mysql

2.2 安装所需的依赖包
dnf -y install ncurses-compat-libs

2.3 创建系统用户mysql
groupadd mysql
useradd -r -g mysql -s /sbin/nologin mysql

2.4 创建MySQL存放数据、日志和配置文件的目录,并创建配置文件my.cnf
mkdir /usr/local/mysql/{data,log,conf}
---配置文件仅供参考
cat << 'EOF' > /usr/local/mysql/conf/my.cnf
[mysqld]
user=mysql
port=3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
log-error=/usr/local/mysql/log/mysqld.log
pid-file=/usr/local/mysql/mysqld.pid
character-set-server=utf8mb4
symbolic-links=0
lower_case_table_names=1
max_allowed_packet=1024M
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
[client]
socket=/tmp/mysql.sock
EOF

2.5 初始化MySQL数据库
chown -R mysql:mysql /usr/local/mysql/
cd /usr/local/mysql/bin/ && ./mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize-insecure
-----initialize-insecure表示不生成临时密码,首次登录MySQL数据库时无需密码

2.6 配置MySQL服务为系统服务
cat << 'EOF' > /usr/lib/systemd/system/mysqld.service
[Unit]
Description=MySQL
ServerDocumentation=man:mysqld(8)
Documentation=http://dev/mysql.com/doc/refman/en/using-systemd.html
After=network.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/conf/my.cnf
LimitNOFILE=65536
LimitNPROC=65536
[Install]
WantedBy=multi-user.target
EOF

2.7 启动MySQL数据库并配置开机自启动
echo "export PATH=/usr/local/mysql/bin:\$PATH" >> /etc/profile
source /etc/profile
systemctl daemon-reload
systemctl enable --now mysqld.service

2.8 配置MySQL数据库的管理员密码
mysql> alter user 'root'@'localhost' identified by '123456';
---密码123456可自定义

2.9 开启MySQL数据库允许远程访问的权限
---如果MySQL数据库只供本机服务访问,可不开启远程访问
mysql> use mysql
mysql> update user set host='%' where user='root';
mysql> flush privileges;
