mysql5.7多实例(第一篇)

mysql主从配置的基本思路:(个人观点)

1)各个节点都开起bin_log日志

2)master会将变动记录到二进制日志里面;

3)master有一个I/O线程将二进制日志发送到slave;

4) slave有一个I/O线程把master发送的二进制写入到relay日志里面;

5)slave有一个SQL线程,按照relay日志处理slave的数据;

我的具体实现步骤:

1)关闭selinux,简单的描述下我了解到的selinux,selinux是一套安全的机制,功能方面可以一些机制所替代。比如防火墙等系列安全措施

关闭的方法: 将/etc/selinux/config里的SELINUX设置成:disabled(永久关闭)     setenforce 0 (临时关闭)

2)下载mysql:(我用的是5.7版本)wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz

a.解压mysq:tar -zxvf mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz

b.移动mysql:sudo mv mysql-5.7.19-linux-glibc2.12-x86_64 /usr/local/mysql

c.使用root用户  创建mysql实例用户及文件

            1、 useradd mysql -r -s /sbin/nologin         

    2、 mkdir -p /usr/local/mysql/mysql_files  //数据导入导出目录

    3、 创建多实例数据存储目录:sudo mkdir -p /data/mysql_data{1..3}

    4、 修改mysql目录的属组及用户:sudo chown root.mysql -R /usr/local/mysql

    5、 修改专用目录的属主及属组:sudo chown mysql.mysql -R /usr/local/mysql/mysql_files  /data/mysql_data{1..3}

d.mysql的配置文件/etc/my.cnf

vim /etc/my.cnf

添加二进制日志配置,开启二进制(master-bin只是日志文件名称,可以自己指定)

log-bin=master-bin

server-id=1

注意:server-id是要唯一,不然会报错,每个节点指定一个唯一标识符

我的my.cnf:

####################主从这一块的配置 点在这呢  

#yzy --- new --- config

[mysqld_multi]

mysqld = /usr/local/mysql/bin/mysqld

mysqladmin = /usr/local/mysql/bin/mysqladmin

log = /tmp/mysql_multi.log

[mysqld1]

datadir = /data/mysql_data1      #设置数据目录

socket = /tmp/mysql.sock1        #设置sock文件存放路径

port = 3306                      #设置监听开放端口

user = root                      #设置运行用户

performance_schema = off          #关闭监控

innodb_buffer_pool_size = 32M        #设置innodb 缓存大小

bind_address = 0.0.0.0              #设置监听IP地址

skip-name-resolve = 0                #关闭DNS反向解析

log-bin=mysql-bin

server-id=11

[mysqld2]

datadir = /data/mysql_data2

socket = /tmp/mysql.sock2

port = 3307

user = root

performance_schema = off

innodb_buffer_pool_size = 32M

bind_address = 0.0.0.0

skip-name-resolve = 0

log-bin=mysql-bin

server-id=12

[mysqld3]

datadir = /data/mysql_data3

socket = /tmp/mysql.sock3

port = 3308

user = root

performance_schema = off

innodb_buffer_pool_size = 32M

bind_address = 0.0.0.0

skip-name-resolve = 0

log-bin=mysql-bin

server-id=13

e:初始化各个mysql实例:初始化完后会在日志中生成密码,记得保存(会用的到这些初始密码)

   1、sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql_data1

 2、sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql_data2

  3、sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql_data3

d:SSL实例连接各个节点

    a、sudo /usr/local/mysql/bin/mysql_ssl_rsa_setup --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql_data1

    b、sudo /usr/local/mysql/bin/mysql_ssl_rsa_setup --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql_data2

    c、sudo /usr/local/mysql/bin/mysql_ssl_rsa_setup --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql_data3

3)复制多实例脚本到服务管理目录下

  sudo cp /usr/local/mysql/support-files/mysqld_multi.server /etc/init.d/mysqld_multi

给予脚本可执行权限:sudo chmod +x /etc/init.d/mysqld_multi

加入service服务管理: sudo chkconfig --add mysqld_multi

添加环境变量

在文件最后面添加内容:sudo vim /etc/profile

export MYSQL_HOME=/usr/local/mysql

export PATH=${MYSQL_HOME}/bin:$PATH

使修改的配置文件生效:source /etc/profile

这一块:我执行时提示找不到source命令,第一点使用root用户,其次嘞,你要把你添加的配置内容整立正的,弄对齐了,格式要严谨!!! python 亦如此

可以不帅,但是要立正! ^_^!

4)查看mysql实例状态:mysqld_multi report; 如果显示三个实例都not running 启动各个实例: sudo mysqld_multi start

启动成功后,再擼一遍查看状态:mysqld_multi report; 这一次全部显示 running 

看下端口占用(严谨给你我他都会带来安全感!)

sudo ss -tulpn|grep mysqld

5)连接各个实例 修改密码:

   a.sudo mysql -S /tmp/mysql.sock1 -p‘上面说到的初始密码’

 b.进去后修改root密码: set password=password('123456');

    c.更改root用户的host属性 update mysql.user set host = '%' where user ='root;

 d. 使修改生效:flush privileges;

授权

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

FLUSH PRIVILEGES;

其中,root 是用户名,% 表示所有人都可以访问,123456是我的登陆实例的密码,到这大致就完成了。再细化下小细节.

6)小细节:

如果你想停掉某个实例:

mysqladmin -uroot -p'123456' -S /tmp/mysql.sock3 shutdown

-u 用户 -p密码  然后跟着节点的sock信息  执行一下,喀嚓一下就停掉了。

mysqld_multi report; 再查看以下  节点3 not running 了

还有配置 主从,我这里是3306是主  3307,3308 从 我说的是端口哈。

我是杂配置的呢  look:

change master to

master_host='127.0.0.1',

master_port=3306,

master_user='root',

master_password='123456',

master_log_file='mysql-bin.000005',

master_log_pos=154;

master_log_file 配置这块的参数  可以在从节点查看 主节点信息,口令:show master status\G;

执行  start slave;    show slave status\G;  查看信息,注意的是俩个变量属性, Slave_IO_Running  和 Slave_SQL_Running  正确的话都是YES

最后呢,开起各个从节点, start slave;  然后登陆主节点: 我的3306是主节点,

mysql -S /tmp/mysql.sock1 -p'123456'

show databases;

在主节点新建个空库,导入数据看俩个从节点是否也有新建的库,

create database pairsdb ;

use pairsdb;

set names utf8;

source/opt/tools/paris.sql;

等待结束后,进入各个从节点查看是否包含新导入的库,或者你也可以在主节点新建个库

create database abcDB;

create table t1 (id int,name varchar(200),createtime timestamp,key(id));

insert into t1 values (1,'aa',now());

insert into t1 values (3,'bb',now());

执行完上述操作后,切换到Salve从节点看看是否同步过去,不出意外的话,应该是会马上同步过去的。

遇到的小阻碍:

我更新abcdb 表中的字段时  主变,其中一个从节点没变;我查看了下 没变的那个节点的: show slave status\G;

发现 Slave_SQL_Running  为false 就是为NO,怪不得呢,没病不死人,光然有鬼。

解决办法:

stop slave;                                                     

SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE;           

start slave;                                                     

show slave status\G;            

邮箱:yzydevops@163.com

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,686评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,668评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,160评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,736评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,847评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,043评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,129评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,872评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,318评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,645评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,777评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,861评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,589评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,687评论 2 351

推荐阅读更多精彩内容