1 安装centos stream9(地址)
跟centos7安装步骤基本一致,不在赘述
2 下载mysql8.0.30(地址)
mysql5.7.x以上版本编译安装严重依赖boost库,不同版本boost也不同。因此下载mysql最好选择下载自带boost的版本。本文以mysql8.0.30为例,对应boost版本为boost_1_77_0,系统为centos stream9,数据库安装位置/usr/local/mysql
3 创建mysql启动用户和组
groupadd mysql
useradd mysql -g mysql -M -s /sbin/nologin
4 安装必备软件
yum -y install ncurses ncurses-devel cmake patchelf automake openssl-devel libtirpc
patchelf 包可能源中没有这个包,可编译安装,(官方地址)
cd /usr/local/src/
wget https://github.com/NixOS/patchelf/archive/refs/tags/0.17.0.tar.gz
tar -xzvf 0.17.0.tar.gz
cd patchelf-0.17.0
./bootstrap.sh
./configure
make
make install
5 创建所需目录
mkdir /usr/local/mysql
mkdir /usr/local/mysql/tmp
mkdir /usr/local/mysql/etc
mkdir /data/logs
mkdir /data/mysql
6 编译安装
(注意 -DWITH_BOOST=./boost 路径是相对,解压后boost文件位于源文件目录下)
cd /usr/local/src
tar zxvf mysql-boost-8.0.30.tar.gz
cd mysql-8.0.30
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/usr/local/mysql/etc -DSYSTEMD_PID_DIR=/usr/local/mysql -DDEFAULT_charset=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_SSL=system -DWITH_READLINE=on -DMYSQL_DATADIR=/data/mysql -DWITH_BOOST=./boost -DWITH_SYSTEMD=1 -DFORCE_INSOURCE_BUILD=1
多核加速编译
make -j 4 && make install # -j 4 表示4CPU核心,可根据服务器实际配置修改grep processor /proc/cpuinfo | wc -l
7 添加软链,文件夹授权
ln -sv /usr/local/mysql/bin/mysql /usr/sbin/mysql
ln -sv /usr/local/mysql/bin/mysqladmin /usr/sbin/mysqladmin
ln -sv /usr/local/mysql/bin/mysqldump /usr/sbin/mysqldump
chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /data/mysql
chown -R mysql:mysql /data/logs
chmod +x /usr/local/mysql
8 数据初始化
1)修改my.cnf文件(配置可自行优化)
vim /usr/local/mysql/etc/my.cnf
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
default_authentication_plugin=mysql_native_password
default-storage-engine=INNODB
user=mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/logs/mysqld.log
pid-file=/usr/local/mysql/run/mysqld.pid
[mysql]
default-character-set=utf8
2)初始化
/usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/etc/my.cnf --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql --initialize-insecure
9 设置开机启动
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl daemon-reload
systemctl enable mysqld
10 启动服务
修改密码