CentOS 7 安装 MySQL 8.4.6(二进制包)指南
MySQL社区版本下载地址:https://dev.mysql.com/downloads/mysql/
,其中LTS为长期支持版本。
因CentOS7默认 glibc 版本为 2.17,官方不支持升级到 2.28,强行升级会破坏系统稳定性.
此处下载mysql-8.0.43-linux-glibc2.17-x86_64-minimal.tar.xz
最小安装版本。
🧰 一、创建可登录的 mysql 用户(由 root 执行一次)
# 创建用户组
sudo groupadd mysql
# 创建可登录用户,主目录为 /home/ap/mysql
sudo useradd -r -g mysql -d /home/ap/mysql -s /bin/bash mysql
# 创建主目录并设置权限
sudo mkdir -p /home/ap/mysql
sudo chown -R mysql:mysql /home/ap/mysql
# 设置密码为 123456
echo 'mysql:123456' | sudo chpasswd
🚶 二、切换到 mysql 用户(后续操作都用该用户)
su - mysql
# 设置下PS1和MySQL环境变量
vi .bash_profile
# 添加行,此处文件夹不存在,可安装完成后配置
export PATH=/home/ap/mysql/mysql-8.0.43/bin:$PATH
export PS1="[\u@\h:\w] # "
source .bash_profile
输入密码:123456
📦 三、下载并解压 MySQL 到指定目录
将 mysql-8.0.43-linux-glibc2.17-x86_64-minimal.tar.xz
文件放到 /home/ap/mysql/
目录下。
cd /home/ap/mysql
tar -xf mysql-8.0.43-linux-glibc2.17-x86_64-minimal.tar.xz
mv mysql-8.0.43-linux-glibc2.17-x86_64-minimal mysql-8.0.43
✅ 解压后目录为:
/home/ap/mysql/mysql-8.0.43
设置权限:
chown -R mysql:mysql /home/ap/mysql/mysql-8.0.43
🔧 四、初始化数据库
mkdir -p /home/ap/mysql/mysql-8.0.43/data
cd /home/ap/mysql/mysql-8.0.43
./bin/mysqld --initialize-insecure \
--user=mysql \
--basedir=/home/ap/mysql/mysql-8.0.43 \
--datadir=/home/ap/mysql/mysql-8.0.43/data
✅ 使用
--initialize-insecure
不生成随机密码,便于后续手动设置。
📁 五、创建配置文件 my.cnf(放在安装目录下)
touch /home/ap/mysql/mysql-8.0.43/my.cnf
写入以下内容:
[client]
port = 3306
socket = /home/ap/mysql/mysql-8.0.43/mysql.sock
[mysqld]
port = 3306
socket = /home/ap/mysql/mysql-8.0.43/mysql.sock
datadir = /home/ap/mysql/mysql-8.0.43/data
basedir = /home/ap/mysql/mysql-8.0.43
user = mysql
bind-address = 0.0.0.0
skip-name-resolve
innodb_file_per_table = 1
default_authentication_plugin = mysql_native_password
log-error = /home/ap/mysql/mysql-8.0.43/data/mysql.err
pid-file = /home/ap/mysql/mysql-8.0.43/data/mysqld.pid
保存并退出。
🔄 六、配置 systemd 服务(需 root 权限)
此步仍需 root 权限,由管理员执行
切换回 root 用户:
exit
编辑或创建 /etc/systemd/system/mysqld.service
文件:
sudo touch /etc/systemd/system/mysqld.service
写入以下内容:
[Unit]
Description=MySQL Server
After=network.target
[Service]
User=mysql
Group=mysql
ExecStart=/home/ap/mysql/mysql-8.0.43/bin/mysqld --defaults-file=/home/ap/mysql/mysql-8.0.43/my.cnf
ExecReload=/usr/bin/kill -HUP $MAINPID
ExecStop=/usr/bin/kill -TERM $MAINPID
PrivateTmp=true
Restart=always
[Install]
WantedBy=multi-user.target
保存并退出。
重载 systemd:
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable mysqld
sudo systemctl start mysqld
🔐 七、设置 root 密码为 123456
,并允许远程访问
再次切换到 mysql
用户:
su - mysql
创建 ~/.my.cnf
(当前用户配置)执行:
cat > ~/.my.cnf <<EOF
[client]
socket = /home/ap/mysql/mysql-8.0.43/mysql.sock
EOF
连接到 MySQL:
cd /home/ap/mysql/mysql-8.0.43
mysql -u root
在 MySQL 命令行中执行:
-- 设置 root 本地密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
-- 添加 root 远程访问权限
CREATE USER 'root'@'%' IDENTIFIED BY '123456';
-- 授权远程 root 用户所有权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
-- 刷新权限
FLUSH PRIVILEGES;
-- 退出
exit
🌐 八、开放防火墙(允许远程访问)
此步需 root 权限
切换回 root 用户:
exit
开放 MySQL 端口:
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload
🧪 九、验证安装
mysql -u root -p
输入密码 123456
,如果进入 MySQL 命令行界面,说明安装成功。
📁 十、目录结构说明
路径 | 说明 |
---|---|
/home/ap/mysql/mysql-8.0.43 |
MySQL 安装目录 |
/home/ap/mysql/mysql-8.0.43/bin |
可执行命令 |
/home/ap/mysql/mysql-8.0.43/data |
数据目录 |
/home/ap/mysql/mysql-8.0.43/my.cnf |
配置文件 |
/home/ap/mysql/mysql-8.0.43/mysql.sock |
socket 文件 |
/home/ap/mysql/mysql-8.0.43/data/mysql.err |
错误日志 |
✅ 十一、总结
步骤 | 内容 |
---|---|
用户 | mysql (可登录) |
安装路径 | /home/ap/mysql/mysql-8.0.43 |
数据目录 | /home/ap/mysql/mysql-8.0.43/data |
root 密码 | 123456 |
支持远程 | 是(root@% ) |
启动方式 | systemctl start mysqld |