MySQL编译安装

OS:CentOS 7.4 最小化安装以及必要一些包

1# 下载MySQL 5.6 源码:

cd /software
wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.41.tar.gz

2# OS 修改limits.conf,再最后添加

vi /etc/security/limits.conf

mysql   soft   nproc   2047
mysql   hard  nproc   16384
mysql   soft   nofile   1024
mysql   hard   nofile   65536

3# 建立mysql用户和组

groupadd -g 1001 mysql
useradd -g 1001 -u 1001 -d /home/mysql mysql

4# 解压MySQL源码

cd /software
tar zxf MySQL-5.6/mysql-5.6.41.tar.gz
cd mysql-5.6.41

5# 执行cmake,生成编译配置文件

cmake . \
-DCMAKE_INSTALL_PREFIX=/opt/mysql-5.6.41 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_USER=mysql \
-DWITH_DEBUG=0 

6# 编译和安装

make && make install

7# 修改/opt/mysql-5.6.41的属主和属组

cd /opt
chown -R mysql:mysql /opt/mysql-5.6.41

8# 建立软连接以便未来版本更新

cd /opt
ln -s /opt/mysql-5.6.41 mysql

9# 修改mysql用户profile,将/opt/mysql/bin添加到PATH

su - mysql

vi  ~/.bash_profile

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=/opt/mysql/bin:$PATH:$HOME/.local/bin:$HOME/bin

export PATH

10# 建立数据路径 #也为了多版本做准备, root用户下

mkdir -p /data/mysqldata/{3306/{data,tmp,binlog},backup,scripts}
chown -R mysql:mysql /data/mysqldata

11# 建立参数文件my.cnf

su - mysql
cd /data/mysqldata/3306
touch my.cnf
vi my.cnf
##my.cnf文件如下

[client]
port = 3306
socket = /data/mysqldata/3306/mysql.sock

[mysqld]
port = 3306
user = mysql
socket = /data/mysqldata/3306/mysql.sock
pid-file = /data/mysqldata/3306/mysql.pid
basedir = /opt/mysql
datadir = /data/mysqldata/3306/data
tmpdir = /data/mysqldata/3306/tmp
open_files_limit = 1024
explicit_defaults_for_timestamp = 1
sql_mode = "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"

#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 = /data/mysqldata/3306/binlog/mysql-bin
binlog_cache_size = 32M
max_binlog_cache_size = 512M
max_binlog_size = 512M
binlog_format = MIXED
log_output = FILE
log-error = ../mysql-error.log
slow-query_log = 1
slow-query_log_file = ../slow_query.log
general_log = 0
general_log_file = ../general_query_log
expire-logs-days = 14

#InnoDB
innodb_data_file_path = ibdata1:2048M:autoextend
innodb_log_file_size = 256M
innodb_log_files_in_group = 3
innodb_buffer_pool_size = 1024M

[mysql]
no-auto-rehash
prompt = (\u@\h) [\d]>\_
default-character-set = utf8

12# 初始化数据库,因为没有在CMAKE的时候指定innodb信息,所以跟上--defaults-file

/opt/mysql/scripts/mysql_install_db --datadir=/data/mysqldata/3306/data --basedir=/opt/mysql  --defaults-file=/data/mysqldata/3306/my.cnf

13# 启动数据库

mysqld_safe --defaults-file='/data/mysqldata/3306/my.cnf'  &

netstat -lnt | grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN

ps -ef | grep mysql
root     26547  2324  0 05:54 pts/0    00:00:00 su - mysql
mysql    26548 26547  0 05:54 pts/0    00:00:00 -bash
mysql    28998 26548  0 06:41 pts/0    00:00:00 /bin/sh /opt/mysql/bin/mysqld_safe --defaults-file=/data/mysqldata/3306/my.cnf
mysql    29464 28998  0 06:41 pts/0    00:00:02 /opt/mysql/bin/mysqld --defaults-file=/data/mysqldata/3306/my.cnf --basedir=/opt/mysql --datadir=/data/mysqldata/3306/data --plugin-dir=/opt/mysql/lib/plugin --log-error=../mysql-error.log --open-files-limit=1024 --pid-file=/data/mysqldata/3306/mysql.pid --socket=/data/mysqldata/3306/mysql.sock --port=3306

转载于:https://blog.51cto.com/accole/2165168

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值