CentOS无外网环境下安装 MySQL图文教程
💻 无外网环境下安装 MySQL 5.7 和 8.0 图文教程
适用系统:Linux(如 CentOS)
安装方式:本地二进制安装
安装目标:
- MySQL 5.7 运行在端口 3306
- MySQL 8.0 运行在端口 13306
📦 第一步:下载所需文件(在可联网电脑上)
从官网下载二进制安装包(选择 .tar.gz
和 .tar.xz
格式):
mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz
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
设置如需帮助,可发送截图或错误信息进行排查。安装完成后请务必定期备份数据。