CentOS无外网环境下安装 MySQL图文教程

发布于:2025-08-06 ⋅ 阅读:(17) ⋅ 点赞:(0)

💻 无外网环境下安装 MySQL 5.7 和 8.0 图文教程

适用系统:Linux(如 CentOS)
安装方式:本地二进制安装
安装目标:

  • MySQL 5.7 运行在端口 3306
  • MySQL 8.0 运行在端口 13306

📦 第一步:下载所需文件(在可联网电脑上)

从官网下载二进制安装包(选择 .tar.gz.tar.xz 格式):

MySQL 版本 下载地址 文件名示例
MySQL 5.7 https://downloads.mysql.com/archives/community/ mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz
MySQL 8.0 https://dev.mysql.com/downloads/mysql/ mysql-8.0.36-linux-glibc2.28-x86_64.tar.xz

✅ 将下载好的文件通过 WinSCP、XFTP、U盘等手段上传到 Linux 服务器的 /usr/local/src 目录。


🧰 第二步:准备系统环境

# 添加 MySQL 用户(不可登录)
useradd -r -s /sbin/nologin mysql

# 创建安装与数据目录
mkdir -p /usr/local/mysql57 /usr/local/mysql80
mkdir -p /data/mysql57 /data/mysql80

# 授权目录归属
chown -R mysql:mysql /data/mysql57 /data/mysql80

📂 第三步:解压安装包

cd /usr/local/src

# 解压 MySQL 5.7
tar -zxvf mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.43-linux-glibc2.12-x86_64 /usr/local/mysql57

# 解压 MySQL 8.0
tar -xvf mysql-8.0.36-linux-glibc2.28-x86_64.tar.xz
mv mysql-8.0.36-linux-glibc2.28-x86_64 /usr/local/mysql80

🧱 第四步:初始化数据库

# 初始化 MySQL 5.7
/usr/local/mysql57/bin/mysqld --initialize --basedir=/usr/local/mysql57 --datadir=/data/mysql57 --user=mysql

# 初始化 MySQL 8.0
/usr/local/mysql80/bin/mysqld --initialize --basedir=/usr/local/mysql80 --datadir=/data/mysql80 --user=mysql

📌 提示:初始化成功后,终端中会显示 root 初始密码(务必记下!)


⚙️ 第五步:配置 my.cnf 文件

# MySQL 5.7 配置文件
cat > /etc/my.cnf <<EOF
[mysqld]
basedir=/usr/local/mysql57
datadir=/data/mysql57
port=3306
socket=/tmp/mysql57.sock
pid-file=/tmp/mysql57.pid
user=mysql
symbolic-links=0
log-error=/var/log/mysql57.log
EOF
# MySQL 8.0 配置文件
cat > /etc/my80.cnf <<EOF
[mysqld]
basedir=/usr/local/mysql80
datadir=/data/mysql80
port=13306
socket=/tmp/mysql80.sock
pid-file=/tmp/mysql80.pid
user=mysql
symbolic-links=0
log-error=/var/log/mysql80.log
EOF

🧩 第六步:配置 systemd 服务

# 创建 mysql57 服务文件
cat > /etc/systemd/system/mysql57.service <<EOF
[Unit]
Description=MySQL 5.7
After=network.target

[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql57/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF
# 创建 mysql80 服务文件
cat > /etc/systemd/system/mysql80.service <<EOF
[Unit]
Description=MySQL 8.0
After=network.target

[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql80/bin/mysqld --defaults-file=/etc/my80.cnf
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

🚀 第七步:启动并验证服务

systemctl daemon-reload
systemctl enable --now mysql57
systemctl enable --now mysql80

# 查看运行状态
systemctl status mysql57
systemctl status mysql80

🔐 第八步:登录并设置密码

# 登录
/usr/local/mysql57/bin/mysql -uroot -p -S /tmp/mysql57.sock
/usr/local/mysql80/bin/mysql -uroot -p -S /tmp/mysql80.sock

# 修改密码并启用远程
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPass123!';
CREATE USER 'root'@'%' IDENTIFIED BY 'YourNewPass123!';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

🧪 第九步:连接测试

mysql -uroot -p -h127.0.0.1 -P3306  # MySQL 5.7
mysql -uroot -p -h127.0.0.1 -P13306 # MySQL 8.0

❗ 常见问题

问题 说明
启动失败 检查配置文件路径、目录权限、日志信息
忘记密码 可用 --skip-grant-tables 启动并重置
无法远程连接 检查防火墙和 bind-address 设置

如需帮助,可发送截图或错误信息进行排查。安装完成后请务必定期备份数据。


网站公告

今日签到

点亮在社区的每一天
去签到