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
编译前配置
export CXXFLAGS="-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"
配置文件设置
-
拷贝配置文件
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