跳到主要内容

Debian及RedHat新版本安装旧版MySQL指南

版本兼容性说明

操作系统版本MySQL 5.1.55MySQL 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

数据库配置

基础配置

  1. 创建数据库用户组

    groupadd mysql && useradd -g mysql mysql
  2. 创建所需目录

    mkdir -p /usr/local/mysql/{data,run,log,var}
  3. 设置目录权限

    chgrp mysql -R /usr/local/mysql
  4. 设置文件打开限制

    ulimit -n 4096
  5. 添加环境变量

    echo "PATH=\"/usr/local/mysql/bin:\$PATH\"" >> /etc/profile
    export PATH="/usr/local/mysql/bin:$PATH"

配置文件设置

  1. 拷贝配置文件

    cp support-files/my-huge.cnf /etc/my.cnf
  2. 编辑配置文件

    vi /etc/my.cnf

    添加以下内容:

    datadir=/usr/local/mysql/data
    skip-name-resolve # 解决连接慢问题
  3. 设置数据目录权限

    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&"

数据库管理

基本操作

  1. 登录MySQL

    mysql
  2. 查看数据库

    show databases;
  3. 查看字符集

    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