MySQL入门02-MySQL二进制版本快速部署

时间:2021-08-31 19:20:30

在上篇文章 MySQL入门01-MySQL源码安装 中,我们介绍了MySQL源码安装的方法。

源码安装虽然有着更加灵活和更加优化等诸多优势。但源码编译安装部署的过程相对复杂,而且整个过程所花费的时间很长。

对于一整套系统和硬件完全一样的机器,其实完全可以只在一台机器源码安装,然后打包好编译出来的二进制版本,拷贝到其他机器解压,直接进行一些配置即可。

本篇文章就来介绍一下二进制版本安装配置MySQL的整个过程。

1.上传二进制版本

首先要将上篇文章中5.1小节中,打包好的MySQL二进制版本`mysql-5.6.30.tar.gz`上传到/usr2目录下。
注:二进制版本的压缩包就有200M+以上的大小。

2.规划数据存放目录

这里系统是使用lvm管理的,vg名称vg00,添加一个名称为lvdata的lv,大小设定100G,然后在系统创建/data目录,将新建的lvdata挂载到/data目录下。具体操作如下:
```
--创建lvdata
lvcreate -L 100g -n lvdata vg00

--格式化为ext4文件系统

mkfs.ext4 /dev/mapper/vg00-lvdata

--添加为开机自动挂载的目录

vi /etc/fstab 加入一行:

/dev/mapper/vg00-lvdata /data ext4 defaults 1 2

--创建/data目录并挂载

mkdir -p /data && mount -a


<h1 id="3">3.解压二进制版本的MySQL</h1>
切换到根目录下,解压二进制版本的MySQL:

cd / && tar zxvf /usr2/mysql-5.6.30.tar.gz


<h1 id="4">4.添加组和用户</h1>
添加组mysql和用户mysql:

groupadd mysql

useradd -g mysql mysql


<h1 id="5">5.配置limits.conf</h1>
vi /etc/security/limits.conf,在文件末尾添加:

mysql soft nproc 2047

mysql hard nproc 16384

mysql soft nofile 1024

mysql hard nofile 65536


<h1 id="6">6.修改目录所有者</h1>
修改MySQL软件所在目录拥有者:

chown -R mysql.mysql /usr/local/mysql


<h1 id="7">7.配置环境变量</h1>
配置mysql用户的环境变量:
需要`su - mysql`切换到mysql用户下,
vi ~/.bash_profile

export LANG=zh_CN.GB18030

export PATH=/usr/local/mysql/bin:$PATH


<h1 id="8">8.创建数据库服务</h1>
**8.1 创建前准备:**

mkdir -p /data/mysqldata/{3306/{data,tmp,binlog},backup,scripts}

chown -R mysql.mysql /data/mysqldata

su - mysql

$ vi /data/mysqldata/3306/my.cnf


**8.2 MySQL的my.cnf配置文件内容如下:**

[client]

port = 3306

socket = /data/mysqldata/3306/mysql.sock

The MySQL Server

[mysqld]

port = 3306

user = mysql

socket = /data/mysqldata/3306/mysql.sock

pid-file = /data/mysqldata/3306/mysql.pid

basedir = /usr/local/mysql

datadir = /data/mysqldata/3306/data

tmpdir = /data/mysqldata/3306/tmp

open_files_limit = 10240

explicit_defaults_for_timestamp

sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

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 = gbk


**8.3 初始化MySQL数据库:**

$ /usr/local/mysql/scripts/mysql_install_db --datadir=/data/mysqldata/3306/data --basedir=/usr/local/mysql


**8.4 启动数据库服务:**

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


**总结:**其实在配置完二进制版本的MySQL后发现,整个过程跟源码安装并没有什么区别,只是省去了最麻烦和最耗时的MySQL源码的编译和安装过程。非常适合相同硬件和系统,对MySQL服务的快速部署。