(0.2.7)Mysql安装——多实例安装

环境:

  centos7 + mysql5.7.26

【1】查看依赖包

  rpm -qa|grep libaio  #查看libaio 依赖包

    

  如果没出现上图,则运行下面语句,安装依赖包

  yum -y install autoconf libaio bison ncurses-devel   #如果没有出现上图,则安装(一般centos7有自带)

【2】查看默认数据库(根据版本不同)

  centos7默认会装mariadb数据库,6则是默认装Mysql数据库。

    rpm -qa|grep mariadb #centos7

    rpm -qa|grep mysql #centos6

      

   如果出现了上图,则运行下列语句,卸载自带的 mariadb。

    rpm -e --nodeps  mariadb-libs-5.5.60-1.el7_5.x86_64  #用这个方式以此删除所有的,如有依赖报错可能需要先删除另外一个  

  建议的删除方式:

    yum -y remove mariadb*

【3】系统方面的一些准备工作

  systemctl stop firewalld  #关闭防火墙

  systemctl disable firewalld  #禁止防火墙开机启动

  getenforce  #查看selinux状态

  vim /etc/selinux/config  #设置开机关闭selinux

    

 【4】构造mysql用户、群组、目录、权限

  【4.1】构造用户与群组

groupadd mysql
useradd -g mysql -s /sbin/nologin mysql    #创建Mysql用户,但不允许其远程实际登陆到系统

  【4.2】构造目录 

mkdir -p /data/mysql/{mysql_3306,mysql_3307}
mkdir /data/mysql/mysql_3306/{data,log,tmp}
mkdir /data/mysql/mysql_3307/{data,log,tmp}

  【4.3】修改mysql相关目录权限给mysql用户

chown -R mysql:mysql /data
chmod -R 755 /data

【5】复制解压二进制文件到  

【5.1】上传到 /data/mysql 目录

  cd /data/mysql

  然后上传文件,或者wget下载文件。

  结果如下图

    

 【5.2】解压mysql二进制包,设置环境变量

tar -zxvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
ln -s mysql-5.7.26-linux-glibc2.12-x86_64 mysql_basedir #原名称太长了,建个软连接
echo "export PATH=${PATH}:/data/mysql/mysql_basedir/bin">>/etc/profile #设置环境变量
source /etc/profile

【6】配置my.cnf文件

cd /data/mysql

vim my.cnf

[client]
port=3306
socket=/tmp/mysql.sock

[mysqld_multi]
mysqld = /data/mysql/mysql_basedir/bin/mysqld_safe
mysqladmin = /data/mysql/mysql_basedir/bin/mysqladmin
log = /data/mysql/mysqld_multi.log

[mysqld]
user=mysql
basedir = /data/mysql/mysql_basedir
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[mysqld3306]

datadir=/data/mysql/mysql_3306/data #多实例中必须不同
port=3306  #多实例中必须不同
server_id=3306  #多实例中如果复制必须要不同
socket=/tmp/mysql_3306.sock  #多实例中必须不同
log-output=file
slow_query_log = 1
long_query_time = 1
slow_query_log_file = /data/mysql/mysql_3306/log/slow.log
log-error = /data/mysql/mysql_3306/log/error.log
binlog_format = mixed
log-bin = /data/mysql/mysql_3306/log/mysql3306_bin

[mysqld3307]
#下列4行参数,多实例中必须不同
datadir=/data/mysql/mysql_3307/data
port=3307
server_id=3307
socket=/tmp/mysql_3307.sock
log-output=file
slow_query_log = 1
long_query_time = 1
slow_query_log_file = /data/mysql/mysql_3307/log/slow.log
log-error = /data/mysql/mysql_3307/log/error.log
binlog_format = mixed
log-bin = /data/mysql/mysql_3307/log/mysql3307_bin
ln -s /data/mysql/my.cnf /etc/my.cnf
chown -R mysql:mysql /data
chmod -R 755 /data
chown  mysql:mysql /etc/my.cnf
chmod -R 755 /etc/my.cnf

【7】初始化多实例


#初始化多实例
mysqld --defaults-file=/data/mysql/my.cnf  --initialize --basedir=/data/mysql/mysql_basedir --user=mysql --datadir=/data/mysql/mysql_3306/data
mysqld --defaults-file=/data/mysql/my.cnf  --initialize --basedir=/data/mysql/mysql_basedir --user=mysql --datadir=/data/mysql/mysql_3307/data

#2个目录均如下图,就是成功了
  

 【8】mysqld_multi进行多实例管理

#mysqld_multi 基本常用操作

启动全部实例:
/usr/local/mysql/bin/mysqld_multi start 查看全部实例状态:/usr/local/mysql/bin/mysqld_multi report 启动单个实例:/usr/local/mysql/bin/mysqld_multi start 3306 停止单个实例:/usr/local/mysql/bin/mysqld_multi stop 3306 查看单个实例状态:/usr/local/mysql/bin/mysqld_multi report 3306
停止全部实例:/usr/local/mysql/bin/mysqld_multi stop # 需要在my.cnf中,统一配置好 [client]然后把user=root 换行 password=123456 账户信息输入进去。否则会出现登录失败
#检查端口监听
netstat -an|grep mysql
#启动全部实例 [root@mysql ~]# /usr/local/mysql/bin/mysqld_multi start [root@mysql ~]# /usr/local/mysql/bin/mysqld_multi report Reporting MySQL servers MySQL server from group: mysqld3306 is running MySQL server from group: mysqld3307 is running

#连接mysql
mysql -uroot -p -P3306 -S /tmp/mysql_3306.sock
mysql -uroot -p -P3307 -S /tmp/mysql_3307.sock

#关闭实例
mysqladmin -uroot -p -S /tmp/mysql_3306.sock -P3306 shutdown
mysqladmin -uroot -p -S /tmp/mysql_3307.sock -P3307 shutdown
 

参考:https://www.cnblogs.com/jpfss/p/8144630.html

参考:https://www.cnblogs.com/xuchenliang/p/6843990.html

原文地址:https://www.cnblogs.com/gered/p/10359291.html