Mysql5.7编译安装

一、安装依赖

yum -y install make gcc-c++ cmake bison-devel ncurses-devel openssl openssl-devel

二、下载源码包

wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.24.tar.gz

解压,进入到目录

添加mysql用户和用户组

groupadd mysql

useradd -g mysql -s /sbin/nologin  mysql

三、编译安装

 

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data  -DSYSCONFDIR=/etc  -DMYSQL_UNIX_ADDR=/tmp/mysql.sock  -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8  -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=boost (不带boost的mysql安装时,需要解压boost,并在此处指定boost目录)-DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1  -DENABLED_LOCAL_INFILE=1  -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_EMBEDDED_SERVER=1   

make -j 4

 

make install

 

四、配置

 

在/usr/local/mysql目录下创建 data,var目录

在/usr/local/mysql/var 下创建 run,log目录

更改文件目录归属:

chown -R mysql: /usr/local/mysql

 

编辑配置文件:

vim /etc/my.cnf

[client]

port = 3306

socket = /tmp/mysql.sock

default-character-set = utf8mb4

 

[mysqld]

port = 3306

socket = /tmp/mysql.sock

 

basedir = /usr/local/mysql

datadir = /usr/local/mysql/data

pid-file = /usr/local/mysql/var/run/mysqld.pid

user = mysql

bind-address = 0.0.0.0

server-id = 1

 

init-connect = 'SET NAMES utf8mb4'

character-set-server = utf8mb4

 

#skip-name-resolve

#skip-networking

back_log = 300

 

max_connections = 1000

max_connect_errors = 6000

open_files_limit = 65535

table_open_cache = 128

max_allowed_packet = 4M

binlog_cache_size = 1M

max_heap_table_size = 8M

tmp_table_size = 16M

 

read_buffer_size = 2M

read_rnd_buffer_size = 8M

sort_buffer_size = 8M

join_buffer_size = 8M

key_buffer_size = 4M

 

thread_cache_size = 8

 

query_cache_type = 1

query_cache_size = 8M

query_cache_limit = 2M

 

ft_min_word_len = 4

 

log_bin = mysql-bin

binlog_format = mixed

expire_logs_days = 30

 

log_error = /usr/local/mysql/var/log/mysql-error.log

slow_query_log = 1

long_query_time = 1

slow_query_log_file = /usr/local/mysql/var/log/mysql-slow.log

 

performance_schema = 0

explicit_defaults_for_timestamp

 

#lower_case_table_names = 1

 

skip-external-locking

 

default_storage_engine = InnoDB

#default-storage-engine = MyISAM

innodb_file_per_table = 1

innodb_open_files = 500

innodb_buffer_pool_size = 64M

innodb_write_io_threads = 4

innodb_read_io_threads = 4

innodb_thread_concurrency = 0

innodb_purge_threads = 1

innodb_flush_log_at_trx_commit = 2

innodb_log_buffer_size = 2M

innodb_log_file_size = 32M

innodb_log_files_in_group = 3

innodb_max_dirty_pages_pct = 90

innodb_lock_wait_timeout = 120

 

bulk_insert_buffer_size = 8M

myisam_sort_buffer_size = 8M

myisam_max_sort_file_size = 10G

myisam_repair_threads = 1

 

interactive_timeout = 28800

wait_timeout = 28800

 

[mysqldump]

quick

max_allowed_packet = 16M

 

[myisamchk]

key_buffer_size = 8M

sort_buffer_size = 8M

read_buffer = 4M

write_buffer = 4M

 

配置系统服务

//Cp /support-files/mysql.server  /etc/init.d/mysqld

vim /usr/lib/systemd/system/mysqld.service

 

[Unit]

Description=MySQL Server

Documentation=man:mysqld(8)

Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html

After=network.target

After=syslog.target

 

[Install]

WantedBy=multi-user.target

 

[Service]

User=mysql

Group=mysql

ExecStart=/usr/local/mysql/bin/mysqld_safe 

LimitNOFILE = 5000

Restart=on-failure

RestartPreventExitStatus=1

PrivateTmp=false

 

 添加环境变量

vim /etc/profile

加入:export PATH="/usr/local/mysql/bin:$PATH"

保存

source /etc/profile

 

五、初始化数据库

配置:

/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

 启动:

systemctl start mysqld

配置安全向导:

mysql_secure_installation

 

最后测试mysql

你可能感兴趣的:(linux)