CentOS install MySQL

CentOS编译安装MySQL

#!/bin/sh
# Description: 安装mysql-5.6.31

SOFTWARE_DIR='/root/'

# ERROR Output
error_echo(){
    printf "33[31m $* 33[0m
"
}

# 安装mysql插件包
mysql_package_install(){
    cd ${SOFTWARE_DIR} && tar zxf bison-2.7.tar.gz -C /usr/src/ && cd /usr/src/bison-2.7/ && ./configure && make && make install
    cd ${SOFTWARE_DIR} && tar zxf ncurses-5.9.tar.gz -C /usr/src/ && cd /usr/src/ncurses-5.9/ && ./configure && make && make install
}

# 创建mysql用户
mysql_user_create(){
    groupadd mysql
    useradd -s /sbin/nologin -M -g mysql mysql
    mkdir -p /data/mysql/
}

# 安装mysql
mysql_install(){
    cd ${SOFTWARE_DIR} && tar zxf mysql-5.6.31.tar.gz -C /usr/src/ && cd /usr/src/mysql-5.6.31/
    cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/usr/local/mysql/ -DMYSQL_DATADIR=/data/mysql/ -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DMYSQL_USER=mysql -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_READLINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DENABLE_DOWNLOADS=1 -DWITH_PARTITION_STORAGE_ENGINE=1
    make && make install
}

# 初始化mysql
mysql_initialization(){
    cd ${SOFTWARE_DIR}
    rm -rf /usr/local/mysql/my.cnf && mv /etc/my.cnf /etc/my.cnf.bak
    cp -r my.cnf /usr/local/mysql/ && dos2unix /usr/local/mysql/my.cnf && ln -sf /usr/local/mysql/my.cnf /etc/my.cnf
    /usr/local/mysql/scripts/mysql_install_db --defaults-file=/usr/local/mysql/my.cnf --user=mysql --datadir=/data/mysql/ --basedir=/usr/local/mysql/
}

# 配置mysql
mysql_config(){
    cp /usr/local/mysql/bin/* /usr/bin/
    echo /usr/local/mysql/lib/ >> /etc/ld.so.conf.d/mysql-x86_64.conf
    echo /usr/lib64/mysql/ >> /etc/ld.so.conf.d/mysql-x86_64.conf
    cp /etc/ld.so.conf.d/mysql-x86_64.conf /etc/ld.so.conf.d/mysql.conf
    ldconfig
}

# 配置mysql启动脚本
mysql_init(){
    cp /usr/src/mysql-5.6.31/support-files/mysql.server /etc/init.d/mysqld
    chmod a+x /etc/init.d/mysqld
    chkconfig --add mysqld && chkconfig --level 2345 mysqld on
}

main(){
    mysql_package_install;
    mysql_user_create;
    mysql_install;
    mysql_initialization;
    mysql_config;
    mysql_init;
    if [ $? -eq 0 ]; then
        /etc/init.d/mysqld start
echo "mysql install successfully !!!" else error_echo "mysql install failed !!!" fi } main
[client]
port = 3306
socket = /data/mysql/mysql.sock
character-set-server = utf8mb4

[mysqld]
user = mysql
port = 3306
datadir = /data/mysql/
basedir = /usr/local/mysql/
socket = mysql.sock
pid-file = mysql.pid
log_error = mysql-error.log
server-id = 1
init-connect = 'SET NAMES utf8mb4'
character-set-server = utf8mb4
log-bin = mysql-bin
binlog_format = mixed
binlog_cache_size = 16M
expire_logs_days = 30
slow_query_log = 1
long_query_time = 1
slow_query_log_file = mysql-slow.log
open_files_limit = 65535
table_open_cache = 65535
table_definition_cache = 65535
key_buffer_size = 8M
sort_buffer_size = 2M
join_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 2M
back_log = 600
max_connections = 100
max_user_connections = 0
max_connect_errors = 1024
max_prepared_stmt_count  = 1024
max_allowed_packet = 8M
max_heap_table_size = 16M
max_tmp_tables = 32
tmp_table_size = 16M
thread_cache_size = 32
ft_min_word_len = 4
query_cache_type = 0
query_cache_size = 0
performance_schema = 0
explicit_defaults_for_timestamp
lower_case_table_names = 1
wait_timeout = 28800
interactive_timeout = 28800
skip-slave-start
skip-external-locking
skip-name-resolve
skip-character-set-client-handshake
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
default-storage-engine = InnoDB
innodb_open_files = 65535
innodb_data_file_path = ibdata1:1G:autoextend
innodb_file_format = Barracuda
innodb_strict_mode = 1
innodb_file_per_table = 1
innodb_buffer_pool_size = 512M
innodb_buffer_pool_instances = 8
innodb_log_buffer_size = 64M
innodb_log_file_size = 1G
innodb_log_files_in_group = 2
innodb_read_io_threads = 4
innodb_write_io_threads = 4
innodb_thread_concurrency = 0
innodb_purge_threads = 1
innodb_flush_log_at_trx_commit = 0
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
innodb_autoextend_increment = 100
innodb_flush_method = O_DIRECT
innodb_io_capacity = 20000
innodb_io_capacity_max = 40000
my.cnf
原文地址:https://www.cnblogs.com/yange/p/8079034.html