mysql部署和编译安装

mysql5.7部署安装

目录

一.策划2

1.1环境 2

1.2介质 2

1.3用户与组 2

1.4默认目录 2

1.5安装目标 2

二.初始化2

2.1清理环境 2

2.2安装所需的各依赖包 3

2.3修改系统内核参数 3

2.4创建用户与组 3

2.5创建目录 3

2.6解压安装包 3

三.编译安装4

3.1编译源码 4

3.2源码安装 4

3.3修正权限 5

3.4建立软链接 5

四.创建实例6

4.1介质 6

4.2配置参数文件 6

4.3运行脚本 6

五.登陆数据库7

5.1关闭MySQL进程 7

5.2启动进程 8

5.3登陆数据库 8

一.策划

1.1环境

操作系统CentOS-7-x86_64-Minimal-1708。内存配置至少2G,建议多核,能加快编译速速。swap区分配至少5G空间。

1.2介质

源码安装包:mysql-boost-5.7.23.tar

下载地址:https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.22.tar.gz

创建实例的脚本;后附

1.3用户与组

软件属于mysql用户组下,mysql用户为拥有者,mysql用户密码为appleroot用户有所有本地操作权限,root用户密码为orange

1.4默认目录

软件存放目录:/home/mysql/sofeware

软件根目录:/home/mysql/base

实例根目录:/home/mysql/instance

1.5安装目标

/home/mysql/instance下,批量创建三个实例:red,blue,yellow,登陆密码为orange

二.初始化

2.1清理环境

清理系统原有mysqlMariaDB,以防止后台进程的相互干扰,利用rpm指令的配套功能就可以实现。

[root@don ~]# rpm -qa |grep mysql

[root@don ~]# rpm -qa |grep mair

使用rpm工具,对返回的结果强制擦除

rpm -e --nodeps [ 返回的结果 ]

2.2安装所需的各依赖包

[root@don ~]# yum -y install  gcc gcc-c++  readline-devel  bzip2-devel  rpm-build  kernel-devel libaio libaio-devel  elfutils-libelf-devel nfs-utils compat-libstdc++-33  compat-libcap1  cmake  bison  automake  ncurses-devel  xinetd  openssl-devel  numactl-libs

2.3修改系统内核参数

[root@don ~]# echo '* soft nofile 65535' >> /etc/security/limits.conf 

[root@don ~]# echo '* hard nofile 65535' >> /etc/security/limits.conf 

2.4创建用户与组

[root@don ~]# groupadd -g 6666 mysql

[root@don ~]# useradd -u 6666 -g mysql mysql

2.5创建目录

[root@don ~]# su - mysql

[mysql@don ~]$ mkdir -p /home/mysql/sofeware

[mysql@don ~]$ mkdir -p /home/mysql/base

[mysql@don ~]$ mkdir -p /home/mysql/instance

2.6解压安装包

将源码安装包mysql-boost-5.7.23.tar放到/home/mysql/sofeware

[mysql@don sofeware]$ pwd

/home/mysql/sofeware

[mysql@don sofeware]$ ls

mysql-boost-5.7.23.tar.gz

[mysql@don sofeware]$ tar xvf mysql-boost-5.7.23.tar.gz

**********************************************

[mysql@don sofeware]$ ls

mysql-5.7.23  mysql-boost-5.7.23.tar.gz

三.编译安装

3.1编译源码

进入解压后的文件夹

[mysql@don sofeware]$ cd mysql-5.7.23

切换到root用户

[mysql@don mysql-5.7.23]$ su

密码:

[root@don mysql-5.7.23]#

[root@don mysql-5.7.23]# cmake . -DCMAKE_INSTALL_PREFIX=/home/mysql/base -DENABLED_LOCAL_INFILE=ON  -DDOWNLOAD_BOOST=1 -DWITH_BOOST=./boost/

DENABLED_LOCAL_INFILE=ON :源码文件保存在当前路径下        

DCMAKE_INSTALL_PREFIX=/home/mysql/base :为源码指定安装目录

  

3.2源码安装

设备上的内核数目为4,所以参数配置为-j 4

[root@don mysql-5.7.23]# make -j 4 && make install

某次安装期间报错,内容如下

[root@don ~]# top

产看内核资源,发现某次安装时的swap区为1G,已经全部用满,证明内存容量不足,

本次安装系统的内存为2G,同时swap区配置为8G时,发现编译安装时swap区使高峰期用量约为3G,所以当使用源码编译时,总内存量不能小于6G

进入/home/mysql/base/bin目录下,验证安装。当返回帮助文档时,证明安装成功

[root@don bin]# pwd

/home/mysql/base/bin

[root@don bin]# ./mysql --help

3.3修正权限

编译安装需要root权限,当编译安装完成后,将软件属组权限还给mysql.

[root@don bin]# chown -R mysql:mysql  /home/mysql/

3.4建立软链接

为方便MySQL其他配套组件使用,建立对应软链接。当提示软连接存在时,则跳过。

ln -s /home/mysql/mysql*/bin/mysql  /usr/bin/mysql

ln -s /home/mysql/mysql*/bin/mysqladmin  /usr/bin/mysqladmin

ln -s /home/mysql/mysql*/bin/mysql_config /usr/bin/mysql_config

ln -s /home/mysql/mysql*/lib/libmysqlclient.so.20 /usr/lib64/libmysqlclient.so.20

四.创建实例

4.1脚本

附件          两个脚本

4.2配置参数文件

将脚本发送到/home/mysql/sofeware路径下。配置initdb.info

[root@don sofeware]# vi initdb.info

IP ******************************************************本机IP 地址

SOFT_DIR ***********************************************软件根目录,本机为/home/mysql/base

INSTANCE_BASE_DIR **************************************实例根目录,自定义

INSTANCE_NAME_PREFIX **********************************实例前缀,自定义

INSTANCE_NAME *****************************************实例名,自定义

INSTANCE_PORT ******************************************实例端口号,建议范围22222-66666

SERVER_ID ***********************************************服务号,实例号后缀号码

ADMIN_USER *********************************************维护账号

ADMIN_PASSWD*******************************************维护密码

4.3运行脚本

注意,一定要在MySQL用户下运行。

[mysql@don sofeware]$ sh init57_v1.3_20180402.sh

运行结束后,将在规划中的/home/mysql/instance下创建,三个实例

[mysql@don instance]$ ls

db_blue  db_red  db_yellow

同时,三个实例对应的mysqld服务进程同时存在系统中:

[mysql@don instance]$ ps -ef|grep mysql

mysql     78084      1  0 18:39 pts/0    00:00:00 /bin/sh /home/mysql/base/bin/mysqld_safe --defaults-file=/home/mysql/instance/db_red/conf/red.cnf --datadir=/home/mysql/instance/db_red/data

mysql     79811  78084  0 18:39 pts/0    00:00:00 /home/mysql/base/bin/mysqld --defaults-file=/home/mysql/instance/db_red/conf/red.cnf --basedir=/home/mysql/base --datadir=/home/mysql/instance/db_red/data --plugin-dir=/home/mysql/base/lib/plugin --log-error=/home/mysql/instance/db_red/log/mysql.err --open-files-limit=65000 --pid-file=/home/mysql/instance/db_red/mysql.pid --socket=/home/mysql/instance/db_red/mysql.sock --port=22222

mysql     81577      1  0 18:40 pts/0    00:00:00 /bin/sh /home/mysql/base/bin/mysqld_safe --defaults-file=/home/mysql/instance/db_blue/conf/blue.cnf --datadir=/home/mysql/instance/db_blue/data

mysql     83304  81577  0 18:40 pts/0    00:00:00 /home/mysql/base/bin/mysqld --defaults-file=/home/mysql/instance/db_blue/conf/blue.cnf --basedir=/home/mysql/base --datadir=/home/mysql/instance/db_blue/data --plugin-dir=/home/mysql/base/lib/plugin --log-error=/home/mysql/instance/db_blue/log/mysql.err --open-files-limit=65000 --pid-file=/home/mysql/instance/db_blue/mysql.pid --socket=/home/mysql/instance/db_blue/mysql.sock --port=22223

mysql     85070      1  0 18:40 pts/0    00:00:00 /bin/sh /home/mysql/base/bin/mysqld_safe --defaults-file=/home/mysql/instance/db_yellow/conf/yellow.cnf --datadir=/home/mysql/instance/db_yellow/data

mysql     86732  85070  0 18:40 pts/0    00:00:00 /home/mysql/base/bin/mysqld --defaults-file=/home/mysql/instance/db_yellow/conf/yellow.cnf --basedir=/home/mysql/base --datadir=/home/mysql/instance/db_yellow/data --plugin-dir=/home/mysql/base/lib/plugin --log-error=/home/mysql/instance/db_yellow/log/mysql.err --open-files-limit=65000 --pid-file=/home/mysql/instance/db_yellow/mysql.pid --socket=/home/mysql/instance/db_yellow/mysql.sock --port=22224

五.登陆数据库

5.1关闭MySQL进程

进入实例db_red目录下bin文件夹,运行shutdown.sh脚本,关闭实例red的进程。同理,关闭其他实例进程。

[mysql@don bin]$ sh shutdown.sh

Enter password: orange

[mysql@don bin]$ ps -ef|grep mysql

[root@don bin]# ps -ef|grep mysql

root      14023   1345  0 16:29 pts/0    00:00:00 su - mysql

mysql     14024  14023  0 16:29 pts/0    00:00:00 -bash

root      55137  14067  0 18:31 pts/0    00:00:00 su - mysql

mysql     55138  55137  0 18:31 pts/0    00:00:00 -bash

root      65693  65683  0 18:34 pts/0    00:00:00 su - mysql

mysql     65694  65693  0 18:34 pts/0    00:00:00 -bash

root      86869  19010  0 18:44 pts/1    00:00:00 grep --color=auto mysql

5.2启动进程

进入实例对应的bin目录下,运行startup.sh脚本

[mysql@don bin]$ ls

login.sh  shutdown.sh  startup.sh

[mysql@don bin]$ sh startup.sh

[mysql@don bin]$ ps -ef|grep mysql

mysql     86938      1  0 19:00 pts/0    00:00:00 /bin/sh /home/mysql/base/bin/mysqld_safe --defaults-file=/home/mysql/instance/db_red/conf/red.cnf --datadir=/home/mysql/instance/db_red/data

mysql     88597  86938  1 19:00 pts/0    00:00:00 /home/mysql/base/bin/mysqld --defaults-file=/home/mysql/instance/db_red/conf/red.cnf --basedir=/home/mysql/base --datadir=/home/mysql/instance/db_red/data --plugin-dir=/home/mysql/base/lib/plugin --log-error=/home/mysql/instance/db_red/log/mysql.err --open-files-limit=65000 --pid-file=/home/mysql/instance/db_red/mysql.pid --socket=/home/mysql/instance/db_red/mysql.sock --port=22222

 

5.3登陆数据库

mysqld进程运行后,在当前目录下,运行login.sh脚本

[mysql@don bin]$ ls

login.sh  shutdown.sh  startup.sh

[mysql@don bin]$ pwd

/home/mysql/instance/db_red/bin

[mysql@don bin]$ sh login.sh

Enter password: orange

Welcome to the MySQL monitor.  Commands end with ; or g.

Your MySQL connection id is 2

Server version: 5.7.23-log Source distribution

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> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| sys                |

+--------------------+

4 rows in set (0.00 sec)

原文地址:https://www.cnblogs.com/lswei/p/9546384.html