> 技术文档 > CentOS无外网环境下安装 MySQL图文教程

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


💻 无外网环境下安装 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/mysql80mkdir -p /data/mysql57 /data/mysql80# 授权目录归属chown -R mysql:mysql /data/mysql57 /data/mysql80

📂 第三步:解压安装包

cd /usr/local/src# 解压 MySQL 5.7tar -zxvf mysql-5.7.43-linux-glibc2.12-x86_64.tar.gzmv mysql-5.7.43-linux-glibc2.12-x86_64 /usr/local/mysql57# 解压 MySQL 8.0tar -xvf mysql-8.0.36-linux-glibc2.28-x86_64.tar.xzmv 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/mysql57datadir=/data/mysql57port=3306socket=/tmp/mysql57.sockpid-file=/tmp/mysql57.piduser=mysqlsymbolic-links=0log-error=/var/log/mysql57.logEOF
# MySQL 8.0 配置文件cat > /etc/my80.cnf <<EOF[mysqld]basedir=/usr/local/mysql80datadir=/data/mysql80port=13306socket=/tmp/mysql80.sockpid-file=/tmp/mysql80.piduser=mysqlsymbolic-links=0log-error=/var/log/mysql80.logEOF

🧩 第六步:配置 systemd 服务

# 创建 mysql57 服务文件cat > /etc/systemd/system/mysql57.service <<EOF[Unit]Description=MySQL 5.7After=network.target[Service]User=mysqlGroup=mysqlExecStart=/usr/local/mysql57/bin/mysqld --defaults-file=/etc/my.cnfLimitNOFILE=65535[Install]WantedBy=multi-user.targetEOF
# 创建 mysql80 服务文件cat > /etc/systemd/system/mysql80.service <<EOF[Unit]Description=MySQL 8.0After=network.target[Service]User=mysqlGroup=mysqlExecStart=/usr/local/mysql80/bin/mysqld --defaults-file=/etc/my80.cnfLimitNOFILE=65535[Install]WantedBy=multi-user.targetEOF

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

systemctl daemon-reloadsystemctl enable --now mysql57systemctl enable --now mysql80# 查看运行状态systemctl status mysql57systemctl 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.7mysql -uroot -p -h127.0.0.1 -P13306 # MySQL 8.0

❗ 常见问题

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

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