视窗
loading...
您现在的位置:首页 > IT认证 > Linux认证 >

Linux数据库:MySQL主从同步设置和同步错误处理


注意:

  1、两台服务器数据库版本应一致,如果不一致,从服务器的版本要高于主服务器的版本。

  2、MySQL进行实时数据同步,本质上是将mysql动作同步到Slave服务器,而不是对实质的数据进行同步。所以同步开始前,两端的数据要保持一致。

  Master服务器:192.168.0.1

  Slave服务器:192.168.0.2

  ===  Master停止运行时,Mysql同步配置===

  一、主服务器设置:

  1、修改/etc/f

  在[mysqld]区段内加入参数

  server-id=1

  log-bin

  sql-bin-update-same

  2、为Slave服务器创建连接账户,用于同步

  mysql>GRANT FILE ON *.* TO backup@192.168.1.2 IDENTIFIED BY ‘1234’;

  3、重启mysql服务:service mysqld restart

  此时因为有加入log-bin参数,因此开始有index产生了,在/var/lib/mysql目录下有.index档案纪录数据库的异动log. 二、Slave服务器设置:

  1、修改/etc/f

  在[mysqld]区段加入

  master-host=192.168.0.1

  master-user=backup

  master-password=1234

  master-port=3306

  server-id=2

  master-connect-retry=60 预设重试间隔60秒

  replicate-do-db=vbb 告诉slave只做vbb数据库的更新

  replicate-ignore-db=mysql #不同步的数据库

  replicate-ignore-table=ers #不同步vbb数据库的users表

  log-slave-updates=1

  2、重启Slave服务器mysql服务

  三、Slave服务器从主服务器读取数据,并开启同步

  1、mysql>FLUSH TABLES WITH READ LOCK; #首先执行这个,对主服务器加锁

  2、mysql>LOAD DATA FROM MASTER  #语句的话,必须授予全局的 FILE 和 SELECT 权限,仅针对MyISAM引擎,对InnoDB表无用。

  3、如果数据是InnoDB的,需要在服务器上将表结构和数据分开导出,然后拷贝至Slave服务器。

  导出整个数据库结构和数据:mysqldump -u用户名 -p密码 -h主机 database > filename.sql

  导出某个表的数据和结构:mysqldump -u用户名 -p密码 -h主机 database table > filename.sql

  只导出数据库中表的数据:mysqldump -u用户名 -p密码 -h主机 -T database table > filename.sql

  只导出数据库中表的结构:mysqldump -u用户名 -p密码 -h主机 -d database table > filename.sql 4、确保两端数据一致后,开启同步

  mysql>slave start;

  5、查看Slave服务器同步信息

  mysql>show slave statusG;

  可以看到,Slave_IO_Running 和 Slave_SQL_Running 两列的值都为 "Yes",这表明 Slave 的 I/O 和 SQL 线程都在正常运行。

  6、对Master服务器释放锁

  mysql>UNLOCK TABLES;

  === Master还在运行中,如何在不停止它的情况下配置Slave ===

  注:主从服务器的配置同上。

  1、首先在Master服务器查看同步日志信息

  mysql>show master status;

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

  | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

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

  | mysql-bin.000054 | 680 |                     | mysql |

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

  可以看到日志文件是:mysql-bin.000054,同步点是680

  2、在Slave服务器配置同步

  mysql>slave stop; # mysql默认同步开始

  mysql>CHANGE MASTER TO MASTER_HOST='192.168.0.1',MASTER_USER='backup',MASTER_PASSWORD='1234',MASTER_LOG_FILE='mysql-bin.000054',MASTER_LOG_POS=690;  #配置同步点

  mysql>slave start; #开启同步

  3、查看同步信息

  mysql>show slave statusG;

  可以看到,Slave_IO_Running 和 Slave_SQL_Running 两列的值都为 "Yes",这表明 Slave 的 I/O 和 SQL 线程都在正常运行。

  4、配置完成

  MYSQL服务器复制配置

  这是根据我之前看的MYSQL复制的文档然后自己亲自实验的过程.配置的功能比较简单.

  环境:

  主服务器:

  redhat9

  mysql 5.0.16 机器名:dbmaster

  IP:192.168.0.111

  从服务器:

  redhat9

  mysql5.0.16

  机器名:dbslave

  IP:192.168.0.100

  配置过程:

  整个过程与MYSQL文档中的复制设置步骤一一对应,只是具体化和标明了一些要注意的地方..如果有兴趣的朋友可以对照阅读,会更加理解.

  1.确认两台服务器的MYSQL版本,用mysql –V命令查看

  注意: MySQL不同版本之间的(二进制日志)binlog格式可能会不一样,所以最好采用相同的版本.如果达不到要求,必须要保证Master的版本不能高于Slave版本

  2.在主服务器上为服务器设置一个连接账户。该账户必须授予REPLICATION SLAVE权限。我为了简单没做这一步,直接用root账户.

  正常的步骤是:

  假定你的域为,想要创建用户名为repl的一个账户,从服务器可以使用该账户从你的域内的任何主机使用密码slavepass来访问主服务器。要创建该 账户,可使用GRANT语句:

  mysql> GRANT REPLICATION SLAVE ON *.*

  ->TO 'repl'@'%.' IDENTIFIED BY 'slavepass';

  如果想要在Slave上有权限执行 "LOAD TABLE FROM MASTER" 或 "LOAD DATA FROM MASTER" 语句的话,必须授予全局的 FILE 和 SELECT 权限:

  mysql>GRANT FILE,SELECT,REPLICATION SLAVE ON *.* TO  'repl'@'%.' IDENTIFIED BY 'rep';

  3.在主服务器上执行FLUSH TABLES WITH READ LOCK语句来刷新表,同时阻止写操作.:

  mysql> FLUSH TABLES WITH READ LOCK;

  然后对主服务器上的数据进行快照。(此时不要退出mysql的提示符,退出的话就解锁了.新开一个ssh窗口进行下面所说的归档打包操作)

闂侀潧妫岄崑锟�

闂侀潧妫岄崑锟�

闂侀潧妫欓崝鏇㈠储閵堝洦瀚婚柨婵嗘嫅缁憋綁鏌¢崟顐︻€楅柟铚傚嵆閹囧醇閻斿摜绉柣鐘叉搐閻°劌危閹达箑违闁跨噦鎷�
闂佸搫鐗滈崜娑㈡偟椤栫偞鐒鹃柕濞垮劚閻庤菐閸ワ絽澧插ù鐓庢嚇瀵爼濡烽敂鍓у煃婵炲瓨绮岀花鑲╄姳娴煎瓨鍤傞柡鍐ㄥ€荤粔褰掓煥濞戣櫕瀚�闁诲海鏁搁、濠偯归崱妯诲闁伙絽鏈悾鍗炃庨崶锝呭⒉濞寸厧鎳橀獮瀣箣濠婂嫮鎷ㄩ梺鍛婃⒐缁嬫帡鎯囨导鏉戝唨闁搞儯鍔嶉~鏍庨崶锝呭⒉濞寸厧鎳橀幆鍐礋椤愩垺鐦旀繝銏f硾鐎氬摜妲愰敓锟�闂佺懓鐡ㄩ崹鍐测堪閹寸姳鐒婂┑鐘叉搐濞呫垹霉閿濆棛鐭庨柍褜鍓欓幊鎰枔閹达附鍋嬮柛顐ゅ枑缂嶁偓闂佹垝鐒﹂妵鐐电礊閺冨牆绾ч柛鎰硶缁€锟�闁诲簼绲婚~澶愬垂濠婂嫮顩锋い鎺戝暞缁侇噣寮堕悙鍨珪婵炲牊鍨剁粚閬嶅焺閸愌呯婵犵鈧啿鈧懓锕㈡担鍓插殨闁稿本绻嶉崬鎾煙鐎涙ḿ澧繝鈧担鍦懝闁割煈鍋呯紞鈧梺鐟扮摠閻楃偟鎹㈠顑芥灃闁哄洦鐭换鍡涙煙椤撗冪仴妞ゆ洦鍓熷畷锝嗙節閸愨晩妲梺鑹伴哺濮婂鏌堥幘顔肩闁瑰瓨绮嶇划锕傛煥濞戞ɑ婀版繝鈧幍顔惧崥婵炲棗娴风粣妤冪磼閺傛鍎忕€规挸妫濆畷姘舵偐缂佹ḿ褰戦梺鎸庡喕閹凤拷闁诲海鏁搁幊鎾舵暜椤愶箑绀嗘繛鎴灻弫鍫曟倵绾拋娼愰柛銊︾矋缁傛帡顢楁担绋啃梺瑙勬緲缁绘垿寮鐣岊浄婵せ鍋撻柍褜鍓欓崐鍝ョ礊鐎n喗鍎嶉柛鏇ㄥ帎瑜版帗鐓€妞ゆ帒锕︾粈锟�闂佽壈椴稿濠氭焾閹绢喖妫橀柣鐔稿绾偓闂佹寧绋掑畝鎼佸磻閺嶃劎顩烽柨鐕傛嫹:webmaster@jscj.com闂侀潧妫岄崑鎾绘煟椤厾绁烽柣锔跨矙閺佸秹鏁撻敓锟�4008816886

相关文章

无相关信息
更新时间2022-09-16 10:07:22【至顶部↑】
联系我们 | 邮件: webmaster@jscj.com | 客服热线电话:4008816886(QQ同号) |  濠电姷鏁搁崕鎴犵礊閳ь剚銇勯弴鍡楀閸欏繘鏌i幇顕呮毌闁稿鎹囬悰顕€宕归鍙ョ棯婵犵數濮崑鎾绘煕閵夋垵鑻▓顐㈩渻閵堝棙顥嗘い鏂匡功閹广垽鏁撻敓锟�

付款方式留言簿投诉中心网站纠错二维码手机版

电话:
付款方式   |   给我留言   |   我要纠错   |   联系我们