计算机网络/计算机科学与应用/系统/运维/开发

RockyLinux10 安装MySQL8

1、安装依赖工具

# 更新系统并安装基础工具

sudo dnf update -y

sudo dnf groupinstall "Development Tools" -y

sudo dnf install cmake ncurses-devel openssl-devel bison libtirpc-devel rpcgen ncurses-compat-libs -y


以上第三步如果出现如下错误:

No match for argument: ncurses-compat-libs Error: Unable to find a match: libtirpc-devel ncurses-compat-libs


解决方法:

替换包

    • ncurses-compat-libs → ncurses-base

    • 确保 libtirpc-devel 在基础仓库可用(若仍报错,启用 CRB 仓库):

      bash

      sudo dnf config-manager --set-enabled crbsudo dnf install libtirpc-devel
  1. 额外依赖(如编译报错):

    bash

    sudo dnf install rpcgen gcc-toolset-12-binutils -y

然后重新执行上面第3步骤

image.png

2、下载MySQL8源码

cd /usr/local/src

# 下载源码包 (以 8.0.36 为例,替换为最新版)

sudo wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.36.tar.gz

# 解压并进入目录

sudo tar -zxvf mysql-8.0.36.tar.gz

cd mysql-8.0.36


3、创建系统用户和目录

# 创建 MySQL 用户

sudo groupadd mysql

sudo useradd -r -g mysql -s /bin/false mysql

# 创建安装目录和数据目录

sudo mkdir -p /usr/local/mysql

sudo mkdir -p /usr/local/mysql/data


4、编译配置选项

# 创建编译目录

mkdir build

cd build

# CMake 配置 (关键参数)

sudo cmake .. \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_DATADIR=/usr/local/mysql/data \

-DSYSCONFDIR=/etc \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_SSL=system \

-DWITH_BOOST=../boost \

-DDEFAULT_CHARSET=utf8mb4 \

-DDEFAULT_COLLATION=utf8mb4_0900_ai_ci \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_SYSTEMD=1

注意:

  • 若缺少 boost 库,需额外下载解压到源码目录并指定 -DWITH_BOOST=../boost

  • 若 CMake 失败,删除 CMakeCache.txt 后重试

5、编译和安装

# 编译 (根据 CPU 核心数调整 -j 参数)

sudo make -j$(nproc)

# 安装

sudo make install


6、配置mysql

# 设置目录权限

sudo chown -R mysql:mysql /usr/local/mysql

# 初始化数据库

sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

# 记录初始密码 (在输出末尾)

sudo grep 'temporary password' /var/log/mysqld.log


7、创建systemd服务

sudo tee /etc/systemd/system/mysqld.service <<'EOF'

[Unit]

Description=MySQL Server

After=network.target

[Service]

User=mysql

Group=mysql

ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf

LimitNOFILE=5000

[Install]

WantedBy=multi-user.target

EOF


8、配置文件/etc/my.cnf

[mysqld]

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

socket=/tmp/mysql.sock

[client]

socket=/tmp/mysql.sock


9、启动mysql

sudo systemctl daemon-reload

sudo systemctl start mysqld

sudo systemctl enable mysqld


10、首次登录和修改密码

# 使用初始密码登录

/usr/local/mysql/bin/mysql -u root -p


11、设置环境变量

echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bashrc

source ~/.bashrc


12、验证安装

mysqladmin --version

systemctl status mysqld


知识是抵御一切灾祸的盾牌

评论

^