准备安装包
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-5.7.29.tar.gz
wget https://github.com/thkukuk/rpcsvc-proto/releases/download/v1.4/rpcsvc-proto-1.4.tar.gz
安装编译环境
yum install -y gcc gcc-c++ make cmake ncurses ncurses-devel bison libtirpc libtirpc-devel rpcgen
创建mysql用户
useradd mysql -s /sbin/nologin
解压rpcsvc安装包
tar xvf rpcsvc-proto-1.4.tar.gz
cd rpcsvc-proto-1.4
编译安装
./configure && make && make install
解压mysql安装包
tar xvf mysql-boost-5.7.29.tar.gz
cd mysql-5.7.29
编译安装
cpp
cmake \
-DCMAKE_INSTALL_PREFIX=${mysql_home} \
-DSYSTEMD_PID_DIR=${mysql_home} \
-DMYSQL_UNIX_ADDR=${mysql_home}/mysql.sock \
-DMYSQL_DATADIR=${mysql_home}/data \
-DSYSCONFDIR=/etc \
-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_BOOST=${boost_home}/boost_1_59_0 \
-DWITH_SYSTEMD=1 && \
make -j $(nproc) && \
make install
数据库授权
chown -R mysql.mysql ${mysql_home}
修改配置文件
vim /etc/my.cnf
cpp
[client]
socket=/opt/mysql/data/mysql.sock
default-character-set=utf8
[mysqld]
datadir=/opt/mysql/data
socket=/opt/mysql/data/mysql.sock
port=3306
skip-ssl
init_connect='SET collation_connection = utf8_general_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_general_ci
skip-character-set-client-handshake
max_connections=3000
lower_case_table_names=1
skip-name-resolve=1
log_bin_trust_function_creators=1
transaction_isolation=READ-COMMITTED
binlog_format=mixed
max_allowed_packet=104857600
local-infile=0
skip_symbolic_links=yes
sql_mode=STRICT_ALL_TABLES,NO_AUTO_CREATE_USER
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
新增完成之后需要创建一个日志文件
touch /var/log/mysqld.log
授权
chown -R mysql:mysql /var/log/mysqld.log
初始化数据库
cpp
mysqld --initialize-insecure --user=mysql --basedir=${mysql_home} --datadir=${mysql_home}/data
初始化完成之后查看data目录是否有文件写入

启动mysql
cpp
cp ${mysql_home}/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system
systemctl daemon-reload
systemctl enable mysqld.service
systemctl start mysqld.service
一般初始化之后root密码默认为空,直接回车。
mysql - uproot -p
修改root密码
alter user 'root'@'localhost' identified by '新密码';
创建用户
GRANT ALL PRIVILEGES ON . TO '用户名'@'%' IDENTIFIED BY '密码' WITH
GRANT OPTION;
重载授权表:
FLUSH PRIVILEGES;