Chinaunix首页 | 论坛 | 博客
  • 博客访问: 146735
  • 博文数量: 70
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 770
  • 用 户 组: 普通用户
  • 注册时间: 2017-11-04 11:19
文章分类

全部博文(70)

文章存档

2018年(69)

2016年(1)

我的朋友

分类: LINUX

2018-09-05 09:09:53

搭建mysql主从

MySQL主服务器

mysql> create database kgcdb;
创建kgcdb数据库

mysql> insert into mysql.user(Host,User,Password) values('localhost','bakuser',password('123456'));
创建用户主从同步的用户bakuser.


grant replication slave on *.* to identified by '123456' with grant option
给备份用户授权。允许bakuser从 从服务器上登录到主服务器

flush privileges;
刷新系统授权表。

show databases;
查看数据库

use kgcdb;
进入kgcdb数据库


create table one(id int not null primary key,name char(20));
创建one表

修改主配置文件:
vim /etc/my.cnf
server-id=1(确认)
log-bin=mysql-bin(确认开启)
binlog-do-db=kgcdb(添加)
binlog-ignore-db=mysql(添加)

重新启动mysqld服务

mysqldump -uroot -p kgcdb > /tmp/kgcdbbak.sql
备份需要同步的数据库到从服务器上,让两天服务器的数据库处于同一起跑线。

scp /tmp/kgcdbbak.sql
把备份好的数据库文件远程传输给从服务器。

登录服务器,查看master状态
show master status;


从服务器:
验证可以使用bakuser登录到主服务器上。

创建一个同名的需要同步的数据库
create database kgcdb;

use kgcdb;

source /tmp/kgcdbbak.sql

退出MySQL环境,修改主配置文件
vim /etc/my.cnf
server-id=2(需要修改)
log-bin=mysql-bin(确定)
replicate-do-db=kgcdb(添加)
replicate-ignore-db=mysql(添加)

重新启动MySQL服务

登录MySQL环境
slave stop;

mysql> change master to
    -> master_host='192.168.1.10',
    -> master_user='bakuser',
    -> master_password='123456',
    -> master_log_file='mysql-bin.000004',
    -> master_log_pos=107;
Query OK, 0 rows affected (0.03 sec)

mysql> slave start;

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.1.10
                  Master_User: bakuser
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000004
          Read_Master_Log_Pos: 107
               Relay_Log_File: localhost-relay-bin.000002
                Relay_Log_Pos: 253
        Relay_Master_Log_File: mysql-bin.000004
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: kgcdb
          Replicate_Ignore_DB: mysql

!!!!注意:
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
一定要是两个Yes.


验证:在主服务器上的kgcdb数据库中创建一个新的表,然后到从数据库的kgcdb中查看是否有相同的表。



阅读(1705) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~