# MySQL 8.0编译环境需求
cmake > 3.5
gcc > 5.3,官方使用gcc8编译
C API包括:c++,c99
SSL
boot c++
Ncurses
Perl & bison 2.1
# 下载包含Boost C++ 库的MySQL源码包
https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-8.0.36.tar.gz
# 编译MySQL
cd /root/mysql-8.0.36
cmake . \
-DWITH_BOOST=./boost/ \
-DCMAKE_CXX_COMPILER=/usr/bin/g++ \
-DCMAKE_INSTALL_PREFIX=/usr/mysql \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DSYSCONFDIR=/ \
-DFORCE_INSOURCE_BUILD=1
make -j4
make install
# 创建运行的用户
groupadd mysql -g 2801
useradd -g mysql -m -p mysql -u 2801 mysql
cat > /etc/my.cnf << EOF
[client]
port = 6033
socket = /data/mysql/tmp/mysql.sock
[mysql]
prompt = "\\u@\\h:\\p/\\d> "
prompt = "\\h:\\p_\\u@\\d \\R:\\m:\\s>"
no-auto-rehash
#tee = /data/mysql/tmp/mysql_operation.log
default_character_set = utf8mb4
[mysqld]
## 需要根据实际情况修改的参数
port = 6033
server_id = 816033
basedir = /usr/mysql
datadir = /data/mysql/dbdata
pid_file = /data/mysql/tmp/mysqld.pid
socket = /data/mysql/tmp/mysql.sock
tmpdir = /data/mysql/tmp
secure_file_priv = /data/mysql/tmp
log_bin = /data/mysql/log/mysql-bin
log_bin_index = /data/mysql/log/mysql-bin-index
slow_query_log_file = /data/mysql/log/slow.log
log-error = /data/mysql/log/error.log
relay_log = /data/mysql/log/mysql-relay
relay_log_index = /data/mysql/log/mysql-relay-index
innodb_buffer_pool_size = 1G
expire_logs_days = 1
default_time_zone = "+8:00"
report_host = 10.2.29.64
sql_mode = ""
## general
user = mysql
character_set_server = utf8mb4
collation_server = utf8mb4_bin
transaction_isolation = READ-COMMITTED
lower_case_table_names = 1
skip_name_resolve = 1
## GTID
gtid_mode = on
enforce_gtid_consistency = 1
master_info_repository = TABLE
relay_log_info_repository = TABLE
[mysqldump]
quick
max_allowed_packet = 2G
EOF
mkdir -p /data/mysql/{dbdata,log,tmp}/
chown -R mysql:mysql /usr/local/mysql/
chown -R mysql:mysql /data/mysql/
chown mysql:mysql /etc/my.cnf
/usr/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql --initialize-insecure
/usr/mysql/bin/mysqld --defaults-file=/etc/my.cnf &