#安装依赖
apt update && apt install build-essential cmake libncurses5-dev libssl-dev zlib1g-dev git pkg-config -y
# 创建用户和目录
sudo groupadd mysql
sudo useradd -r -g mysql mysql
sudo mkdir -p /data/mysql
sudo chown mysql:mysql /data/mysql
# 编译安装
mkdir mysql-build
cd mysql-build
cmake /root/mysql-8.0.42 \
-DDOWNLOAD_BOOST=0 \
-DWITH_BOOST=../mysql-8.0.42/boost \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_DATADIR=/data/mysql \
-DSYSCONFDIR=/etc/mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_SSL=system \
-DWITH_ZLIB=bundled \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_0900_ai_ci
make -j$(nproc)
make install
#写入配置文件
mkdir -p /etc/mysql
cat > /etc/mysql/my.cnf <<EOF
[client]
# 默认字符集
default-character-set = utf8mb4
[mysqld]
# 基本设置
log-bin=/data/msyql/mysql-bin
basedir=/apps/mysql
datadir=/data/mysql
socket=/data/mysql/mysql.sock
port=3306
user=mysql
# 日志设置
log_error=/data/mysql/error.log
general_log_file=/data/mysql/general.log
slow_query_log_file=/data/mysql/slow.log
slow_query_log=1
long_query_time=2
# 字符集设置
character-set-server=utf8mb4
collation-server=utf8mb4_0900_ai_ci
# InnoDB 设置
innodb_buffer_pool_size=1G # 根据你的服务器内存大小调整
innodb_log_file_size=256M
innodb_flush_method=O_DIRECT
# 安全性设置
skip_name_resolve # 禁用 DNS 反向解析,提高连接速度
max_connections=500 # 最大连接数,根据需要调整
# 其它设置
explicit_defaults_for_timestamp=1
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
EOF
#初始化Mysql
sudo /apps/mysql/bin/mysqld --initialize --user=mysql --basedir=/apps/mysql --datadir=/data/mysql
echo 'PATH=/apps/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
chmod +x /etc/profile.d/mysql.sh
source /etc/profile.d/mysql.sh
cp /apps/mysql/support-files/mysql.server /etc/init.d/mysqld
systemctl enable mysqld
systemctl start mysql
systemctl status mysql