安装依赖环境
yum -y install gcc gcc-c++ cmake openssl openssl-devel ncurses-devel autoconf libtirpc libtirpc-devel rpcgen
创建用户
useradd mysql -u 1001
编译 MYSQL
cmake . -DCMAKE_INSTALL_PREFIX = /apps/svr/mysql-5.7.38 \
-DMYSQL_DATADIR = /apps/data/mysql-5.7.38/data \
-DMYSQL_UNIX_ADDR = /apps/run/mysql-5.7.28/mysql.sock \
-DDOWNLOAD_BOOST = 1 \
-DWITH_BOOST = ./boost/boost_1_59_0/ \
-DDEFAULT_CHARSET = utf8 \
-DDEFAULT_COLLATION = utf8_general_ci \
-DWITH_EXTRA_CHARSETS = all \
-DWITH_INNOBASE_STORAGE_ENGINE = 1 \
-DWITH_FEDERATED_STORAGE_ENGINE = 1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE = 1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE = 1 \
-DWITH_ZLIB = bundled \
-DWITH_SSL = system \
-DENABLED_LOCAL_INFILE = 1 \
-DWITH_EMBEDDED_SERVER = 1 \
-DENABLE_DOWNLOADS = 1 \
-DWITH_DEBUG = 0
编写 my.cnf 文件
[client]
port = 3306
socket = /apps/run/mysql-5.7.28/mysql.sock
[mysqld]
server-id=1
bind-address = 0.0.0.0
port = 3306
user = mysql
socket = /apps/run/mysql-5.7.28/mysql.sock
pid-file = /apps/run/mysql-5.7.28/mysql.pid
basedir = /apps/svr/mysql-5.7.38
datadir = /apps/data/mysql-5.7.38/data
tmpdir = /apps/tmp/mysql-5.7.38
open_files_limit = 10240
explicit_defaults_for_timestamp
#init_connect = 'SET autocommit=OFF' # MySQL disable autocommit, It's not effective for root
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
lower_case_table_names=1
max_connections = 2000
wait_timeout = 7200
interactive_timeout = 7200
# Buffer
max_allowed_packet = 256M
max_heap_table_size = 256M
net_buffer_length = 8K
sort_buffer_size = 2M
join_buffer_size = 4M
read_buffer_size = 2M
read_rnd_buffer_size = 16M
# Log
log-bin = /apps/data/mysql-5.7.38/binlog
binlog_cache_size = 32M
max_binlog_cache_size = 512M
max_binlog_size = 512M
binlog_format = mixed
log_output = FILE
log-error = /apps/logs/mysql-5.7.38/mysql-error.log
slow_query_log = ON
slow_query_log_file = /apps/logs/mysql-5.7.38/slow_query.log
long_query_time = 5
general_log = OFF
general_log_file = /apps/logs/mysql-5.7.38/general_query.log
expire-logs-days = 14
# InnoDB
innodb_data_file_path = ib_sysdata01:256M;ib_sysdata02:256M:autoextend:max:128G
innodb_buffer_pool_size = 1024M
innodb_file_per_table = ON
# 设置 redo
innodb_log_group_home_dir = /apps/data/mysql-5.7.38/redo
innodb_log_file_size = 256M
innodb_log_files_in_group = 3
# 设置 undo
innodb_undo_directory = /apps/data/mysql-5.7.38/undo
innodb_undo_tablespaces = 1
[mysql]
no-auto-rehash
prompt = (\u@\h)[\d]>\_
default-character-set =utf8mb4
创建依赖目录
mkdir -p /apps/data/mysql-5.7.38/data/
mkdir -p /apps/data/mysql-5.7.38/redo
mkdir -p /apps/run/mysql-5.7.28/
mkdir -p /apps/logs/mysql-5.7.38/
mkdir -p /apps/tmp/mysql-5.7.38/
初始化 MYSQL
/apps/svr/mysql-5.7.38/bin/mysqld --initialize
启动MYSQL
/apps/svr/mysql-5.7.38/bin/mysqld_safe --defaults-file= /apps/conf/mysql-5.7.38/my.cnf
停止mysql
/apps/svr/mysql-5.7.38/bin/mysqladmin -uroot -p -S /apps/run/mysql-5.7.28/mysql.sock shutdown
其他
CREATE USER 'test' @'%' IDENTIFIED BY '123456' ;
GRANT ALL ON *.* TO 'test' @'%' ;
REVOKE INSERT ON *.* FROM 'test' @'%' ;
alter user 'root' @'localhost' identified by '123456' ;