linux mysql 单机主从5.1.73怎么做主从复制

温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
在mysqld 下面添加如下:
#一般已存在 server-id = 1 #需要进行复制的数据库 binlog-do-db = mydatabase #不需要进行复制的数据库 replicate-ignore-db = mysql replicate-ignore-db = test replicate-ignore-db = information_schema #生成的同步数据所需要的文件,序号从:syslog.000001开始 log-bin=syslog
然后重启下mysql服务
4 备份master端所需要的做replication的库并在 slave 端还原(master 端备份时有写操作时先锁表 再备份记录& master status 状态后 再把锁去掉) 并记录 show master status 中的状态
5在slave库 配置my.cnf
#将配置文件中的server-id该为2 server-id = 2 #需要进行同步的数据库名称 replicate-do-db = mydatabase
6 在slave 端 使用change to master 命令
change master to
master_host='master_ip', master_user='user',
master_password='pwd',
master_port=3306,
master_log_file='mysql-bin.000020',
master_log_pos=;
master_log_file 和 master_log_pos 分别对应 记录master status 中 file 和 position
7 重启slave 端mysql 服务 登陆进去 查看 slave status
Show& slave& status
Slave_io_running =yes
Slave_sql_running = yes
&./mysqldump -uroot -p --single-transaction --master-data=2 service&/usr/local/0401ervice.sql
阅读(1855)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_',
blogTitle:'linux下 mysql 5.5 数据库主从复制配置',
blogAbstract:'1、/f 主数据库配置 #一般已存在server-id = 1#需要进行复制的数据库binlog-do-db = mydatabase#不需要进行复制的数据库replicate-ignore-db = mysqlreplicate-ignore-db = testreplicate-ignore-db = information_schema#生成的同步数据所需要的文件,序号从:syslog.000001开始log-bin=syslog 2、重启mysql,登陆Mysql,设置从数据库所需要的权限:可以从任何机器登陆,账号/密码:slave/123456grant replication slave,reload,super on *.* to ',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:6,
publishTime:2,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:1,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:true,
hostIntro:'',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}博客访问: 34099
博文数量: 83
博客积分: 10
博客等级: 民兵
技术积分: 20
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: Mysql/postgreSQL
port & & & & & &= 3360
#socket & & & & &= /usr/local/mysql/data/mysql.sock
socket=/var/lib/mysql/mysql.sock
default-character-set=utf8
# MySQL server
port & & & & & &= 3360
character-set-server=utf8
init_connect='SET NAMES utf8'
#datadir=/usr/local/mysql/data
#socket & & & & &= /usr/local/mysql/data/mysql.sock
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
max-heap-table-size = 64M
thread-concurrency = 16
#ft-min-word-len = 4
#default-storage-engine = INNODB
#transaction-isolation = REPEATABLE-READ
#tmp-table-size = 64M
#bulk-insert-buffer-size = 64M
# *** NETWORK ***
back-log = 50
max-connections = 1024
max-user-connections = 0
max-connect-errors = 10
net_buffer_length = 8K
max-allowed-packet = 16M
# *** SESSION THREAD ***
thread-cache-size = 64
thread-stack = 192K
# *** TABLE CACHE ***
table-open-cache = 2048
sort-buffer-size = 8M
join-buffer-size = 8M
# *** &Replication related settings ***
server-id & & & & & = 1
#binlog-format & & & = mixed
#binlog-cache-size & = 32K
#max-binlog-size & & = 512M
#sync-binlog & & & & = 0
#innodb-support-xa &= 1
#log-bin & & & & & & = mysql-bin
#log-bin-index & & & = mysql-bin.index
#relay-log & & & & & = mysql-relay-bin
#relay-log-index & & = mysql-relay-bin.index
#expire-logs-days & &= 10
#log-slave-updates & = 1
#skip-slave-start
# *** MyISAM Specific options ***
read-buffer-size = 2M
read-rnd-buffer-size = 16M
key-buffer-size = 1024M
myisam-sort-buffer-size = 64M
myisam-max-sort-file-size = 10G
myisam-repair-threads = 1
myisam-recover
# *** INNODB Specific options ***
innodb-buffer-pool-size = 384M
innodb-additional-mem-pool-size = 16M
innodb-log-buffer-size = 8M
innodb-log-file-size = 256M
#innodb-data-file-path = ibdata1:10240M:autoextend
innodb-file-per-table = 1
innodb-thread-concurrency = 16
innodb-flush-log-at-trx-commit = 1
[mysqldump]
max-allowed-packet = 16M
no-auto-rehash
[myisamchk]
key-buffer-size = 512M
sort-buffer-size = 512M
read-buffer = 8M
write-buffer = 8M
[mysqlhotcopy]
interactive-timeout
[mysqld-safe]
open-files-limit = 60000
如果以上配置在第一次启动不了,先清空mysql数据库指定目录下的数据,然后在linux上执行以下命令:
&setenforce 0
在重启mysql,此时应能正常启动&&&&
阅读(933) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。linux下安装mysql有多种方式,相对而言源码安装速度最快,兼容性也会好些。相反,源码安装更麻烦一些。
第一步,下载和解压安装包:
mysql 5.1.73官方下载地址。
http://dev.
linux下安装mysql有多种方式,相对而言源码安装速度最快,兼容性也会好些。相反,源码安装更麻烦一些。
第一步,下载和解压安装包:
mysql 5.1.73官方下载地址。
md5:887f869bcc98f707f32f
md5sum mysql-5.5.38.tar.gz
tar -zxf mysql-5.1.73
第二步,系统的设置:
groupadd mysql
useradd -g mysql mysql
/usr/local/mysql
mkdir -p /usr/local/mysql/var
第三步,编译安装:
mysql-5.1.73
./configure --prefix=/usr/local/mysql
-with-plugins=innobase
make install
第四步,初始化数据库:
cp support-files/my-medium.cnf /etc/my.cnf
为支持InnoDB表,编辑/f文件,去掉innodb_…开始选项行前面的#符。
bin/mysql_install_db--user=mysql
chown -R root .
chown -R mysql var
chgrp -R mysql .
第五步,添加服务和启动项以及修改默认存储引擎:
添加服务:
cp support-files/mysql.server
/etc/init.d/mysql.server 
chmod u+x /etc/init.d/mysql.server
service mysql.server start
service mysql.server stop
service mysql.server restart
service mysql.server status
添加启动项:
sudo chkconfig --level 23 mysql on
修改该存储引擎
在[mysqld] 下面加入default-storage-engine=INNODB,保存。
遇到的错误:
在安装之后,使用mysqld_safe脚本直接启动遇到如下错误。
‘–skip-locking’ is deprecated and will be removed in a future release. Please use ‘–skip-external-locking’ instead.
解决方法:
将/f里面的skip-locking 改为skip-external-locking
转载请注明: >>
用云栖社区APP,舒服~
【云栖快讯】快速解决数据库难题,云数据库经典案例及最佳实践直播专场!阿里云数据库专家团队成员倾囊相授!赶紧报名。&&
RDS是一种稳定可靠、可弹性伸缩的在线数据库服务。支持MySQL、SQL Server、PostgreSQL、高...
支持以数据库为核心的结构化存储产品之间的数据传输。 它是一种集数据迁移、数据订阅及数据实时同步于一体的数据传输服...
基于飞天分布式系统和高性能存储,提供三节点副本集的高可用架构,容灾切换,故障迁移完全透明化。并提供专业的数据库在...
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本...
2017云栖大会·上海峰会火热报名中
Loading...陌上S 的BLOG
用户名:陌上S
文章数:26
访问量:18863
注册日期:
阅读量:5863
阅读量:12276
阅读量:423707
阅读量:1112148
51CTO推荐博文
一. 主从复制的原理主要通过主从节点上的三个线程来完成复制,简单的模型如下:主服务器:dump thread:主要用来响应从服务器的IO thread的请求,从将二进制日志中的内容响应给从服务器的IO threadIO thread:是从服务器请求主服务器的二进制日志中语句的线程,并且将其记录到relaylog中SQL thread:从relaylog中读取语句,并执行的线程为了提高服务器的性能,mysql的复制是异步的,但这也就使mysql的复制具有滞后工作过程:1. master记录二进制日志。2. slave将master的binary log拷贝到它自己的中继日志。3. SQL的slave thread处理该过程的最后一步。二. 主从复制的具体配置简要的步骤:主服务器:1.创建具有复制权限的用户账号2.设置server-id3.启用二进制日志从服务器:1.启动中继日志(可选择关闭二进制日志)2.设置server-id3.启动复制进程注意:主从服务器的server-id必须不同,从服务器可以选择从主服务器二进制日志中的某个位置开始复制首先在主从服务器端安装好mysql,这里就不做说明了。主服务器端:1. 在配置文件/f中启用二进制日志,并设置server-idlog-bin=mysql-bin
server-id = 12.进入mysql交互模式,添加具有复制权限的用户账号mysql& grant replication slave,replication client on *.* to repluser@'192.168.0.%' identified by 'repluser';
mysql&这里创建账户时,由于从服务器要远程访问,则IP要是从服务器的网段3.查看当前二进制文件所处的位置mysql&
+------------------+----------+--------------+------------------+
| Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)从服务器:1.在配置文件中开启中继日志,设置server-id#log-bin=mysql-bin
//禁用二进制日志
relay-log=mysql-relay
//启用中继日志
server-id = 11
//设置server-id,与主服务器上的不同2. 启动从服务器,并指定主服务器的相关参数mysql& CHANGE MASTER TO MASTER_HOST='192.168.0.22',MASTER_LOG_FILE='mysql-bin.000003',MASTER_LOG_POS=357,MASTER_USER='repluser',MASTER_PASSWORD='repluser';
mysql& start slave3. 查看数据库数据目录中的文件,应该会出现中继日志[root@slave ~]# ls /mydata/data/
mysql-bin.index
mysql-relay.index
ib_logfile0
mysql-relay.000001
performance_schema
ib_logfile1
mysql-bin.000001
mysql-relay.000002
test验证:在主服务器上新增数据库student,新建表class,插入一行数据mysql& cre
Query OK, 1 row affected (0.02 sec)
mysql& use student
Database changed
mysql& create table class(id tinyint unsigned primary key, name char(20) not null);
Query OK, 0 rows affected (0.11 sec)
mysql& insert into class value(1,'class 1');
Query OK, 1 row affected (0.05 sec)在从服务器可以看到这个数据库mysql&
+--------------------+
| Database
+--------------------+
| information_schema |
| performance_schema |
+--------------------+
5 rows in set (0.02 sec)
mysql& use student
Database changed
mysql& select *
+----+---------+
| id | name
+----+---------+
1 | class 1 |
+----+---------+
1 row in set (0.00 sec)三. 半同步复制为了提高服务器的性能,mysql的主从复制是异步的,这会导致从服务器的数据可能滞后于主服务器,造成数据不一致。在一主多从的场景中,主服务器可以使用半同步的方式,只等待一台从服务器复制完成并返回成功信息后才停止等待过程,但是在超时后会自动降级为异步模式。要使用半同步模式,主从服务器都要安装插件在主从复制的基础上,做以下配置# On Master
mysql& INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
mysql& SET GLOBAL rpl_semi_sync_master_enabled = 1;
mysql& SET GLOBAL rpl_semi_sync_master_timeout = 1000;
# On Slave
mysql& INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
mysql& SET GLOBAL rpl_semi_sync_slave_enabled = 1;
mysql& STOP SLAVE IO_THREAD; START SLAVE IO_THREAD;如果需要开机时,自动能够实现半同步则需要在Master和Slave的my.cnf中编辑:# On Master
rpl_semi_sync_master_enabled=1
rpl_semi_sync_master_timeout=1000
# On Slave
rpl_semi_sync_slave_enabled=1如果要加载取消插件mysql& UNINSTALL PLUGIN rpl_semi_sync_查看从服务器上semi_sync是否开启mysql& show variables like "%semi%";
+---------------------------------+-------+
| Variable_name
+---------------------------------+-------+
| rpl_semi_sync_slave_enabled
| rpl_semi_sync_slave_trace_level | 32
+---------------------------------+-------+
2 rows in set (0.01 sec)在主服务器上查看mysql& SHOW GLOBAL STATUS LIKE 'rpl_semi%';
+--------------------------------------------+-------+
| Variable_name
+--------------------------------------------+-------+
| Rpl_semi_sync_master_clients
| Rpl_semi_sync_master_net_avg_wait_time
| Rpl_semi_sync_master_net_wait_time
| Rpl_semi_sync_master_net_waits
| Rpl_semi_sync_master_no_times
| Rpl_semi_sync_master_no_tx
| Rpl_semi_sync_master_status
| Rpl_semi_sync_master_timefunc_failures
| Rpl_semi_sync_master_tx_avg_wait_time
| Rpl_semi_sync_master_tx_wait_time
| Rpl_semi_sync_master_tx_waits
| Rpl_semi_sync_master_wait_pos_backtraverse | 0
| Rpl_semi_sync_master_wait_sessions
| Rpl_semi_sync_master_yes_tx
+--------------------------------------------+-------+
14 rows in set (0.02 sec)master_clietns的值为1,说明半同步已经设置成功。以上就是最基本的主从复制的配置方法,当随着时间的推移,主服务器上的二进制文件会越来越大,当新增一台从服务器时,如果要从头开始复制就太耗时了。此时可以先做一次备份,记录二进制文件的位置,然后在从服务器上还原,在从记录的二进制文件位置处开始进行主从复制。当然,备份还原可以是物理备份,mysqldump,xtrabackup,这些都可以。下面以mysqldump为例,做简要的说明1 首先锁定数据库的表,为了防止在操作过程中数据不一致的问题mysql& flush t2 检查当前记录的二进制日志及其所处位置mysql&3 通过mysqldump创建数据库备份mysqldump --all-databases -hlocalhost -p &back.sql4 对数据库进行解锁mysql&5 把back.sql还原到从服务器上,执行mysql -hlocalhost -p &back.sql6 这是就可进行主从复制了,复制的位置从第2步得到的位置开始。本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)

我要回帖

更多关于 linux mysql 主从复制 的文章

 

随机推荐