Liunx 下MYSQL 5.7 二进制安装

时间:2022-04-17 07:52:16

 Linux 下 MySQL 5.7 二进制安装

  数据库服务器操作系统配置可参看《Linux下MYSQL 5.6 源码安装https://www.cnblogs.com/doctormo/p/12019550.html

  这里采用的是 mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz, 可从MySQL官网 https://dev.mysql.com/downloads/mysql 下载5.7 版本。

    Liunx 下MYSQL 5.7 二进制安装

1.1 安装必要的依赖包

# yum -y install gcc gcc-c   make cmake automake autoconf libxml2 libxml2-devel zlib zlib-devel ncurses ncurses-devel numactl-devel numactl

1.2 创建目录和授权

# useradd mysql
# mkdir -p /data/my3306
# mkdir -p /u02/my3306/data
# mkdir -p /u02/my3306/log/iblog
# mkdir -p /u02/my3306/log/binlog
# mkdir -p  /u02/my3306/tmp
# mkdir -p /u02/my3306/run
# chown -R mysql.mysql /u02

1.3 解压

# cd /usr/local/src  ==>  mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz上传至此
# tar zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
# mv mysql-5.7.22-linux-glibc2.12-x86_64 /usr/local/
# cd  /usr/local/
# ln -s mysql-5.7.22-linux-glibc2.12-x86_64 mysql
# chown -R mysql.mysql /usr/local/mysql

1.4 配置参数文件

# cat /u02/my3306/my.cnf
[client]
port=3306
socket=/u02/my3306/mysql.sock
default-character-set=utf8mb4

[mysql]
pid_file=/u02/my3306/run/mysqld.pid
 
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
autocommit=1
general_log=off
explicit_defaults_for_timestamp=true
lower_case_table_names=1
#symbolic-links=0

#gtid
gtid-mode                = ON
enforce_gtid_consistency = 1
log_slave_updates        = 1

#sql_mode
sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

# system
basedir=/usr/local/mysql
datadir=/u02/my3306/data
max_allowed_packet=1g
max_connections=3000
max_user_connections=2800
open_files_limit=65535
pid_file=/u02/my3306/run/mysqld.pid
port=3306
server_id=71693306
skip_name_resolve=ON
socket=/u02/my3306/run/mysql.sock
tmpdir=/u02/my3306/tmp

#binlog
log_bin=/u02/my3306/log/binlog/binlog
binlog_cache_size=32768
binlog_format=row
expire_logs_days=14
log_slave_updates=ON
max_binlog_cache_size=2147483648
max_binlog_size=524288000
sync_binlog=10

#logging
log_error=/u02/my3306/log/error.log
slow_query_log_file=/u02/my3306/log/slow.log
log_queries_not_using_indexes=0
slow_query_log=1
log_slave_updates=ON
log_slow_admin_statements=1
long_query_time=1
group_concat_max_len = 102400
 
#relay
relay_log=/u02/my3306/log/relaylog
relay_log_index=/u02/my3306/log/relay.index
relay_log_info_file=/u02/my3306/log/relay-log.info
 
#slave
slave_load_tmpdir=/u02/my3306/tmp
slave_skip_errors=OFF
 
#innodb
innodb_data_home_dir=/u02/my3306/log/iblog
innodb_log_group_home_dir=/u02/my3306/log/iblog
innodb_adaptive_flushing=ON
innodb_adaptive_hash_index=ON
innodb_autoinc_lock_mode=1
innodb_buffer_pool_instances=8

#default
innodb_change_buffering=inserts
innodb_checksums=ON
innodb_buffer_pool_size= 20G
innodb_data_file_path=ibdata1:1G:autoextend
innodb_doublewrite=ON
innodb_file_format=Barracuda
innodb_file_per_table=ON
innodb_flush_log_at_trx_commit=1
innodb_flush_method=O_DIRECT
innodb_io_capacity=1000
innodb_lock_wait_timeout=10
innodb_log_buffer_size=67108864
innodb_log_file_size=1048576000
innodb_log_files_in_group=4
innodb_max_dirty_pages_pct=60
innodb_open_files=60000
innodb_purge_threads=1
innodb_read_io_threads=4
innodb_stats_on_metadata=OFF
innodb_support_xa=ON
innodb_use_native_aio=OFF
innodb_write_io_threads=10

[mysqld_safe] datadir=/u02/my3306/data

 

1.5 初始化数据库

# /usr/local/mysql/bin/mysqld --defaults-file=/u02/my3306/my.cnf --initialize --user=mysql --log_error_verbosity --explicit_defaults_for_timestamp --basedir=/usr/local/mysql --datadir=/u02/my3306/data/
# chown -R mysql.mysql /u02

1.6 启动数据库

$ su - mysql
$ mysqld_safe --defaults-file=/u02/my3306/my.cnf & $ grep passw /u02/my3306/log/error.log 2018-07-10T03:13:40.850685Z 1 [Note] A temporary password is generated for [email protected]: vh2yRx=Pguem $ mysql -uroot -p -S /u02/my3306/run/mysql.sock Enter password: Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 2 Server version: 5.7.22-log Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type help; or h for help. Type c to clear the current input statement. mysql> set password=password(xxxxxxx); mysql> flush privileges;