Debian及RedHat新版本安装旧版MySQL指南
版本兼容性说明
| 操作系统版本 | MySQL 5.1.55 | MySQL 4.1.22 | 
|---|---|---|
| Debian 11 | ✓ | ✓ | 
| Ubuntu 22.04 | ✓ | ✓ | 
| RHEL 9 | ✓ | ✓ | 
| CentOS 8 | ✓ | ✓ | 
| CentOS 7 | ✓ | ✓ | 
| Rocky 8 | ✓ | ✓ | 
| Rocky 9 | ✓ | ✓ | 
⚠️ 注意:MySQL 4.x/5.1.x 已停止官方支持,仅建议用于测试环境
环境准备
系统要求
- 最小内存:2GB
 - 磁盘空间:至少5GB可用空间
 - 推荐配置:4核CPU/8GB内存
 
依赖包安装
# RedHat/CentOS/Rocky系列:
sudo yum install -y \
    gcc-c++ make ncurses-devel openssl-devel \
    zlib-devel libaio-devel libtirpc-devel \
    bison automake autoconf libtool
# Debian/Ubuntu系列:
sudo apt install -y \
    g++ make libncurses5-dev libssl-dev \
    zlib1g-dev libaio-dev libtirpc-dev \
    bison automake autoconf libtool-bin
安装MySQL
编译前配置(如果不执行下面的环境变量设置编译会报错)
# AlmaLinux/RockyLinux 8 g++8.5优先执行
export CXXFLAGS="-std=c++98 -D_GLIBCXX_USE_CXX11_ABI=0 -fpermissive -Wno-narrowing"
# AlmaLinux/RockyLinux 9 g++11优先执行
export CXXFLAGS="-include linux/types.h -std=c++98 -D_GLIBCXX_USE_CXX11_ABI=0 -fpermissive -Wno-narrowing"
配置参数
./configure \
    --prefix=/usr/local/mysql \
    --enable-thread-safe-client \
    --with-charset=gbk \
    --with-collation=gbk_chinese_ci \
    --with-extra-charsets=all \
    --enable-shared \
    --with-fast-mutexes \
    --with-plugins=max-no-ndb \
    --with-ssl \
    --with-libwrap \
    --with-mysqld-libs="-lrt -lpthread" \
    --with-zlib=system \
    --with-big-tables
字符集参数说明
--with-charset=gbk                  # 默认字符集设为GBK
--with-collation=gbk_chinese_ci      # 中文默认排序规则
--with-charset=latin1               # 原始万能字符参数
--with-collation=latin1_general_ci   # 万能字符默认排序规则
编译安装
make -j4
make install
数据库配置
基础配置
- 
创建数据库用户组
groupadd mysql && useradd -g mysql mysql - 
创建所需目录
mkdir -p /usr/local/mysql/{data,run,log,var} - 
设置目录权限
chgrp mysql -R /usr/local/mysql - 
设置文件打开限制
ulimit -n 4096 - 
添加环境变量
echo "PATH=\"/usr/local/mysql/bin:\$PATH\"" >> /etc/profile
export PATH="/usr/local/mysql/bin:$PATH" - 
添加动态库并刷新
echo '/usr/local/mysql/lib/mysql' >> /etc/ld.so.conf
ldconfig 
配置文件设置
- 
拷贝配置文件
cp support-files/my-huge.cnf /etc/my.cnf - 
编辑配置文件
vi /etc/my.cnf添加以下内容:
datadir=/usr/local/mysql/data
skip-name-resolve # 解决连接慢问题 - 
设置数据目录权限
chown mysql.mysql /usr/local/mysql/data -R 
数据库初始化
su - mysql -c "mysql_install_db"
su - mysql -c "mysqld_safe --skip-name-resolve --open-files-limit=4096&"
数据库管理
基本操作
- 
登录MySQL
mysql - 
查看数据库
show databases; - 
查看字符集
show variables like '%character%'; 
权限配置
-- 本地访问授权
GRANT ALL PRIVILEGES ON *.* TO ztgame@"localhost" IDENTIFIED BY "123456" WITH GRANT OPTION;
-- 回环地址授权
GRANT ALL PRIVILEGES ON *.* TO ztgame@"127.0.0.1" IDENTIFIED BY "123456" WITH GRANT OPTION;
-- 远程访问授权
GRANT ALL PRIVILEGES ON *.* TO ztgame@"%" IDENTIFIED BY "123456" WITH GRANT OPTION;
-- 刷新权限
FLUSH PRIVILEGES;
创建数据库
CREATE DATABASE FLServerDB;
CREATE DATABASE ZtGameDB;
CREATE DATABASE LoginServer;
CREATE DATABASE roleChangeServer;
CREATE DATABASE roleregServer;
CREATE DATABASE unify00;
CREATE DATABASE zt;
服务管理
开机启动设置
cp support-files/mysql.server /etc/init.d/mysqld
chmod -R 777 /etc/init.d/mysqld
/etc/init.d/mysqld start
chkconfig --add mysqld
chkconfig mysqld on
服务管理
开机启动设置(系统差异)
1. Systemd系统(RHEL 8+/Rocky 8+/Debian 9+/Ubuntu 16.04+)
# 创建systemd服务文件
cat > /etc/systemd/system/mysqld.service <<EOF
[Unit]
Description=MySQL Server
After=network.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld_safe
Restart=always
LimitNOFILE=4096
[Install]
WantedBy=multi-user.target
EOF
# 启用服务
systemctl daemon-reload
systemctl enable mysqld
systemctl start mysqld
2. SysVinit系统(CentOS 7/RHEL 7)
cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
service mysqld start
3. Debian系update-rc.d
cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
update-rc.d mysqld defaults
service mysqld start
临时目录创建
mkdir /tmp/offlineMessages