Percona Server for MySQL8最新编译安装教学

我为什么要写这篇教学?

  1. 我自己安装的时候发现网上并没有最新的编译安装教学,其实和mysql编译安装几乎一模一样
  2. 方便后人参考和快速部署Percona Server for MySQ
  3. 做个记录,方便以后自己快速部署

我还没有解决的问题(也有可能是我自己主机的问题)

  1. 用PVE创建的kvm虚拟主机(debian12)始终识别不到openldap,我也不知道为啥…
  2. 用PVE创建的debian系的系统似乎都存在识别不到openldap的情况

ps:我不懂编程,很多东西也不甚了解,没办法分析具体原因,欢迎大佬在我博客的评论区指正

一,编译安装

PS:我使用的是RHEL9

1,安装必要的依赖

yum install git sudo gcc cmake make gcc-toolset-12-gcc gcc-toolset-12-gcc-c++ gcc-toolset-12-binutils gcc-toolset-12-annobin-annocheck gcc-toolset-12-annobin-plugin-gcc openssl-devel openldap-devel cyrus-sasl-devel cyrus-sasl-scram krb5-devel ncurses-devel readline-devel bison libcurl-devel libudev-devel libtirpc-devel rpcgen libaio-devel libtirpc-devel

2,拉取 Percona Server for MySQL 源代码

cd /root
git config --global http.postBuffer 524288000
git clone https://github.com/percona/percona-server.git
cd percona-server

3,确定你要编译安装的版本

git checkout 8.0
git submodule init
git submodule update

PS:分支名称可以在官方仓库找到

4,编译过程中会生成很多文件,创建一个文件夹用来存放

cmake ../percona-server -DDOWNLOAD_BOOST=1 -DWITH_BOOST=./boost -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_CONFIG=mysql_release -DFEATURE_SET=community

5,编译二进制文件

make -j4

PS:“-j“后面跟你的CPU核心数量

6,安装

make install

二,配置和启动MySql

1,创建一个MySql用户

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

2,创建文件目录

cd /usr/local/mysql
cd /usr/local/mysql && mkdir -p /usr/local/mysql/etc && mkdir -p mysql-files

3,设置文件权限

chown mysql:mysql mysql-files && chmod 750 mysql-files

4,初始化数据库

cd /usr/local/mysql
./bin/mysqld --initialize-insecure --user=mysql

5,配置环境变量

if ! grep -q "MYSQLPATH=/usr/local/mysql" /etc/profile; then
    run_command "配置环境变量..." "echo 'export MYSQLPATH=/usr/local/mysql' >> /etc/profile && echo 'export PATH=\$MYSQLPATH/bin:\$MYSQLPATH/lib:\$PATH' >> /etc/profile && source /etc/profile"
else
    echo "环境变量已配置,跳过。"
fi

6,创建配置文件

if [ ! -f "/usr/local/mysql/etc/my.cnf" ]; then
    echo "创建 MySQL 配置文件..."
    cat <<EOF > /usr/local/mysql/etc/my.cnf
[mysqld]
port = 3306
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
secure-file-priv=/usr/local/mysql/mysql-files
user=mysql

character_set_server=utf8mb4
EOF
else
    echo "MySQL 配置文件已存在,跳过创建。"
fi

7,创建一个systerm的配置文件用于快速管理Mysql

if [ ! -f "/usr/lib/systemd/system/mysql.service" ]; then
    echo "创建 systemd 服务文件..."
    cat <<EOF > /usr/lib/systemd/system/mysql.service
[Unit]
Description=MySQL Server
#Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target

[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/etc/my.cnf
PIDFile=/mysql/data/mysqld.pid
Restart=on-failure
RestartPreventExitStatus=1
TimeoutSec=0
PrivateTmp=false
LimitNOFILE=65535
LimitNPROC=65535

[Install]
WantedBy=multi-user.target
EOF
else
    echo "systemd 服务文件已存在,跳过创建。"
fi

7,启动mysql

bin/mysqld --initialize-insecure --user=mysql
systemctl daemon-reload
systemctl enable mysql
systemctl start mysql

PS:因为我CPU性能太差,编译需要花好几个小时!我就没有重新编译一次并截图,所以只有封面一张图片,有什么问题可以到评论区讨论!

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发
    • xueba的头像-学霸博客xueba徽章-人气大使-学霸博客等级-LV1-学霸博客作者0