mysql主从复制-linux版本

来自:http://www.osyunwei.com/archives/7269.html,改版

mysql主从复制
本文采用的是
centos6.5+mysql-5.6.23版本
之前在 windows7安装过主从复制,现在在linux实现主从复制
mysql安装方法:
http://www.cnblogs.com/lin3615/p/4376224.html
配置:
配置MySQL主服务器(192.168.179.142)
从服务器两台(192.168.179.146,192.168.179.147)
数据库就以 test为例,
// 从这里开始配置第一台从服务器
#建立一个MySQL主从数据库同步用户 lin3615,密码123456,并授予给192.168.179.146

登陆数据库,进入控制台

insert into mysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_subject) values(‘localhost‘,‘lin3615‘,password(‘123456‘),‘‘,‘‘,‘‘);

#刷新系统授权表

flush privileges;  

#授权用户lin3615 只能从 192.168.179.146 这个IP访问主服务器192.168.179.142上面的数据库

grant replication slave  on *.* to ‘lin3615‘@‘192.168.179.146‘ identified by ‘123456‘;

先把 主服务器的数据库复制到 从服务器,具体方法可参考:
http://www.cnblogs.com/lin3615/p/3749438.html

配置MySQL主服务器(192.168.179.142)的my.cnf文件

vim /etc/my.cnf  

#编辑配置文件,在[mysqld]部分添加下面内容

server-id=1   #设置服务器id,为1表示主服务器,一般用IP地址接替
log-bin=mysql-bin  #启动MySQ二进制日志系统
binlog-do-db=test  #需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行
binlog-ignore-db=mysql   #不同步mysql系统数据库
#保存退出
service mysqld  restart  #重启MySQL
mysql -h localhost -u root -p   #登陆
show variables like ‘server_id‘;  #查看server-id的值是否为1
mysql> show variables like ‘server_id‘;
show master status;  #查看主服务器,出现以下类似信息

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

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

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

| mysql-bin.000011 |      107 | osyunweidb   | mysql            |

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

1 row in set (0.00 sec)

注意:这里记住File的值:mysql-bin.000011和Position的值:107,后面会用到。

配置MySQL从服务器(192.168.179.146)的my.cnf文件

vim /etc/my.cnf   #编辑配置文件,在[mysqld]部分添加下面内容
server-id=2   #设置服务器id,修改其值为2,表示为从数据库
log-bin=mysql-bin  #启动MySQ二进制日志系统
replicate-do-db=test   #需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行
replicate-ignore-db=mysql   #不同步mysql系统数据库
read_only  #设置数据库只读
service mysqld restart   #重启MySQL

#进入MySQL控制台
#查看server-id的值,必须为上面设置的2,否则请返回修改配置文件

show variables like ‘server_id‘;  

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

| Variable_name | Value |

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

| server_id     | 2     |

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

1 row in set (0.01 sec)

#停止slave同步进程
stop slave; #此选项,之前测试时用 slave stop/slave start(启动),现在测试一直报错,日志无法查看,原来是命令不对,搞了半天才知道
#执行同步语句
change master to master_host=‘192.168.179.142‘,master_user=‘lin3615‘,master_password=‘123456‘,master_log_file=‘mysql-bin.000001‘ ,master_log_pos=107;
#开启slave同步进程
start slave; 
#查看slave同步信息
SHOW SLAVE STATUS\G 
出现以下内容

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.21.128

Master_User: osyunweidbbak

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000011

Read_Master_Log_Pos: 107

Relay_Log_File: mysqlslave-relay-bin.000004

Relay_Log_Pos: 253

Relay_Master_Log_File: mysql-bin.000011

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB: osyunweidb

Replicate_Ignore_DB: mysql

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

Last_Errno: 0

Last_Error:

Skip_Counter: 0

Exec_Master_Log_Pos: 107

Relay_Log_Space: 560

Until_Condition: None

Until_Log_File:

Until_Log_Pos: 0

Master_SSL_Allowed: No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master: 0

Master_SSL_Verify_Server_Cert: No

Last_IO_Errno: 0

Last_IO_Error:

Last_SQL_Errno: 0

Last_SQL_Error:

Replicate_Ignore_Server_Ids:

Master_Server_Id: 1

1 row in set (0.00 sec)

mysql>

注意查看:

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

以上这两个参数的值为Yes,即说明配置成功!

// 结束配置第一台从服务器
同理,配置第二台,从从服务器开始,重新设置一个新的用户名
即:
#建立一个MySQL主从数据库同步用户 lin3615_1,密码123456,并授予给192.168.179.147

insert into mysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_subject) values(‘localhost‘,‘lin3615_1‘,password(‘123456‘),‘‘,‘‘,‘‘);

重复第一台从库的设置即可

接着可以测试,在主库上进行 curd

 
时间: 2024-12-25 06:01:10

mysql主从复制-linux版本的相关文章

mySql 主从复制linux配置

总结: 主库(192.168.1.251): /etc/my.cnf.d/server.cnf [mysqld] log-bin=mysql-bin server-id=1 从库(192.168.1.254): /etc/my.cnf.d/server.cnf [mysqld] log-bin=mysql-bin server-id=2 重新启动主库.从库 在主库中给从库创建一个用于复制的账号: mysql > GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.

安装Percona版本的MySQL主从复制

准备两台虚拟机,按顺序执行1.1节的公共部分 1.1 首先安装 cmake # yum –y install cmake     //也需要安装gcc-c++,openssl openssl-devel.前面已经安装. # cd /usr/local # mkdir mysql # cd mysql / rz 上传安装包 # tar -xvf Percona-Server-5.6.24-72.2-r8d0f85b-el6-x86_64-bundle.tar 执行安装文件 # rpm -ivh P

160525、高并发之mysql主从复制(linux)

第一步:新建两台linux主机(我这里是使用虚拟机,linux版本是CentOS-6.3-x86_64-bin-DVD1.iso,注意:我下载的是dvd1,如果其他版本默认安装可能会自动还原) 第二步:每台机器都安装一台mysql并配置.前面已经介绍过,这里就不介绍了. 第三步:(主从复制) 1)vim /etc/my.cnf 在[mysqld]后面添加以下两行:(server-id不同机器上面的mysql不能一样) server-id=1 log-bin=mysql-bin 2) 接下来确认s

linux Mysql 主从复制 原理介绍和步骤详解

大家好,我是霸王卸甲,今天我给大家带来的是linux数据库中的主从复制的简单介绍和步骤详解. 主从复制 mysql主从复制 灵活 一主一从 主主复制 一主多从---扩展系统读取的性能,因为读是在从库读取的: 多主一从---5.7开始支持 联级复制--- 用途及条件 mysql主从复制用途 实时灾备,用于故障切换 读写分离,提供查询服务 备份,避免影响业务 主从部署必要条件: 主库开启binlog日志(设置log-bin参数) 主从server-id不同 从库服务器能连通主库 主从原理mysql主

linux笔记 第四十课 mysql主从复制

1.MYSQL复制的基础概念 2.MYSQL复制的实现 3.MYSQL复制架构及双主模型演示 4.MYSQL复制监控/常见问题及解决方案 5.MariaDB  GTID及多源复制 6.MariaDB  GTID读写分离及mysql-proxy的使用 一.MySQL主从复制的基础知识 二.MySQL主从复制实现(以mariadb 5.5.36为例) 实验环境:主服务器(node1)172.16.100.7 从服务器(node2)172.168.100.8 软件:mariadb-5.5.36-lin

mysql主从复制实现(基于mysql5.5版本)

一,mysql主从复制原理介绍: mysql的复制是基于二进制日志实现的,二进制日志记录的是一切可能引起数据库发生改变的操作,因此,二进制日志对mysql十分重要,利用它可以实现数据库的即时点还原,对于备份恢复数据库意义重大. mysql复制中,主服务器的事务操作提交后,会将事件记录到二进制日中去,这时从服务器会启动IO_Thread来与主服务器通信,将主服务器中的二进制日志中的事件复制到本地并保存在本地的中继日志中,而后,从服务器会通过SQL_Thread将中继日志中的事件提取出来在数据库中进

mysql学习(3)-linux下mysql主从复制

前言:为什么MySQL要做主从复制(读写分离)?通俗来讲,如果对数据库的读和写都在同一个数据库服务器中操作,业务系统性能会降低.为了提升业务系统性能,优化用户体验,可以通过做主从复制(读写分离)来减轻主数据库的负载.而且如果主数据库宕机,可快速将业务系统切换到从数据库上,可避免数据丢失. MySQL主从复制(读写分离)和集群的区别: 1.主从复制(读写分离):一般需要两台及以上数据库服务器即可(一台用于写入数据,一台用于同步主的数据并用于数据查询操作).局限性:(1)配置好主从复制之后,同一张表

玩转MySQL之Linux下的简单操作(服务启动与关闭、启动与关闭、查看版本)

小弟今天记录一下在Linux系统下面的MySQL的简单使用,如下: 服务启动与关闭 启动与关闭 查看版本 环境 Linux版本:centeros 6.6(下面演示),Ubuntu 12.04(参见文章末尾红色标注字体) MySQL版本:5.1.73 查看MySQL服务的启动状态, 输入命令: /etc/init.d/mysqld status 或者: service mysqld status 示例图: 或者 接着启动MySQL的服务, 输入命令:service mysqld start 或者:

MYSQL—第二部分(Linux版本的安装和数据表的操作)

Linux版本的安装(过于简单了) 安装: ? 1 yum install mysql-server 服务端启动 ? 1 mysql.server start 客户端连接 ? 1 2 3 4 5 6 7 连接:     mysql -h host -u user -p     常见错误:         ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2), it