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用户密码为apple。root用户有所有本地操作权限,root用户密码为orange。
1.4默认目录
软件存放目录:/home/mysql/sofeware
软件根目录:/home/mysql/base
实例根目录:/home/mysql/instance
1.5安装目标
在/home/mysql/instance下,批量创建三个实例:red,blue,yellow,登陆密码为orange。
二.初始化
2.1清理环境
清理系统原有mysql及MariaDB,以防止后台进程的相互干扰,利用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) |