参考:http://369369.blog.51cto.com/319630/790921/
http://www.2cto.com/database/201312/269034.html
http://yhv5.com/mysql_master-slave_799.html
1、主从服务器分别作以下操作:
1.1、版本一致,如我用的mysql5.6.22;
1.2、安装(我们是编译源码安装的)完成后初始化表,并在后台启动mysql;
1.3、修改root的密码;
2、修改主服务器master:
#vim /usr/local/mysql/my.cnf
[mysqld]
log-bin=mysql-bin #开启二进制日志
server_id=1 #[必须]服务器唯一ID,默认是1,一般取IP最后一段
binlog-ignore-db =test #不记录test库,可以添加多个库则写多行
binlog-do-db =chzzg #记录chzzg库
log-slave-updates =1 #这个参数一定要加上,否则不会给更新的记录些到二进制文件里
slave-skip-errors =1062 #这个跳过1062 主键重复错误
skip-external-locking
skip-name-resolve
expire_logs_days =7 #日志保留7天
innodb_flush_log_at_trx_commit=1 #这也是Innodb 的默认设置。我们每次事务的结束都会 #触发Log Thread 将log buffer 中的数据
sync_binlog =1
binlog_cache_size =10M
binlog_format =mixed
3、修改从服务器slave:
#vim /usr/my.cnf
[mysqld]
log-bin=mysql-bin //[必须]启用二进制日志
server-id=8 //[必须]服务器唯一ID,默认是1,一般取IP最后一段
binlog-ignore-db =test
log-slave-updates =1
skip-external-locking
skip-name-resolve
expire_logs_days =7
innodb_flush_log_at_trx_commit=1
sync_binlog =1
max_binlog_size = 10M
binlog_cache_size = 5M
replicate-ignore-db =test
binlog_format =mixed
完成配置后重启两台服务器的mysql
4、在主服务器上建立帐户并授权slave:
命令登陆master机子:
# mysql -uroot -padmin //用户名命名登陆后就可以了。
mysql> GRANT REPLICATION SLAVE ON *.* to 'backup'@'%' identified by 'backup123'; //一般不用root用户,如果指定了 多台从机,则可以用 %,只有一台从机就指定 IP替换%。“%”表示所有客户端都可能连;
mysql> show master status; //登陆master机子的mysql查看master状态;并记录
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000004 | 120 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
注:执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化
5、配置从服务器Slave:
登陆slave机的mysql:命令同上:mysql -u用户名 -p密码
mysql> change master to
master_host='172.168.32.6', //此处都是内网地址。
master_user='backup', //master授权的用户名
master_password='backup123', //master授权的用户密码
master_port=3306,
master_log_file='mysql-bin.000004', //master的文件名称File
master_log_pos=120; //master的文件位置Positon
完成后。
Mysql>start slave; //启动从服务器复制功能
6、检查从服务器复制功能状态:
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 172.168.32.6
Master_User: backup
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000004
Read_Master_Log_Pos: 120
Relay_Log_File: i-588F1134-relay-bin.000002
Relay_Log_Pos: 894
Relay_Master_Log_File: mysql-bin.000004
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB: test
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: 731
Relay_Log_Space: 1072
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
Master_UUID: 29296c3f-849a-11e4-a8de-d00de79d4b11
Master_Info_File: /usr/local/mysql/data/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
1 row in set (0.00 sec)
上边看到: Slave_IO_Running: Yes
Slave_SQL_Running: Yes 两个表示成功,必须是2个Yes 才是成功, connecting 或者No都失败!
另外:
如果数据库已经有数据了,则需要将主库的数据导出,并上传到从库服务器上并导入;
主库导出样例:
[root@i-05963843 bin]# ./mysqldump -uroot -p12345 -h127.0.0.1 kyddb > /home/kyddb0914.sql
可以导出来,
也可以用:mysqldump -uroot -p --hex-blob --lock-all-tables -R --triggers --databases mydb --master-data=2 --default-character-set='utf8' --quick > /home/kyddb0914.sql
导入命令:
mysql -uwebsite -pfeixun@0927 --default-character-set=utf8 website < /home/kyddb0914.sql
相关推荐
MySQL的主从复制和半同步复制是数据库集群中常见的高可用性和数据冗余策略,能够保证数据的一致性并提供故障恢复能力。本文将详细解释这两种复制方式的原理、配置步骤以及优缺点。 **一、MySQL主从复制** MySQL...
### Debian系统下MySQL主从同步复制 在Debian系统中实现MySQL主从同步复制是一种常见的数据库高可用性和负载均衡策略。这种技术可以确保数据的安全性并提高系统的整体性能。接下来,我们将详细介绍如何在Debian环境...
在Windows环境下,MySQL主从同步备份是一种常见的高可用性和数据冗余策略,确保数据的...以上就是Windows环境下MySQL 5.0主从同步备份的详细步骤,确保在配置过程中每个环节都正确无误,以实现高效、可靠的数据库复制。
Mysql主从同步备份策略 五月 18th, 2009 at 17:30 - 3,803 views 环境: 主从服务器上的MySQL数据库版本同为5.1.34 主机IP:192.168.0.1 从机IP:192.168.0.2 一. MySQL主服务器配置 1.编辑配置文件/etc/my.cnf # ...
MySQL主从同步是指将一个MySQL服务器的数据实时地复制到另一个或多个服务器上,以实现数据的高可用性和灾难恢复。这种方式可以实现数据的热备援、读写分离、负载均衡等功能。 1. 案例 1:MySQL 一主一从 在这个...
MySQL 主从同步配置过程 一、 MySQL 主从同步配置概述 MySQL 主从同步配置是指将 MySQL 数据库的数据从一台服务器(主服务器)同步到另一台服务器(从服务器)的过程。这种配置可以实现数据的高可用性和灾难恢复,...
首先,MySQL主从同步的基本概念指的是在一个数据库实例(主库)上对数据进行修改操作后,通过一定的机制将这些修改操作复制到一个或多个数据库实例(从库)上。主库负责数据的写操作,而从库可以用于数据备份或者...
【Linux下MySQL主从同步复制】是MySQL数据库在分布式环境中实现数据备份和高可用性的一种常见策略。在Linux操作系统上,这一过程涉及到一系列步骤,包括安装MySQL服务、配置主从服务器、设置复制参数以及验证复制...
### MySQL实践备份恢复与主从复制 #### 备份恢复 **备份恢复**是数据库管理中的重要环节之一,尤其对于MySQL这种广泛使用的数据库系统来说更是如此。合理的备份策略能够确保数据的安全性和系统的稳定性。 ##### ...
### MySQL主从同步镜像备份知识点详解 #### 一、MySQL主从同步基本概念 - **主从复制机制**:MySQL中的主从复制是一种数据复制技术,它将一个MySQL服务器(主服务器)的数据异步复制到一个或多个其他MySQL服务器...
MySQL数据库的主从同步备份是一种常见的高可用性和数据冗余策略,它允许在一个主服务器(Master)上执行写操作,而这些更改会自动复制到一个或多个从服务器(Slave)。在Windows环境下,这个过程需要一些特定的配置...
Linux-Mysql 主从同步配置 本文将详细解释 Linux-Mysql 主从同步配置的步骤和知识点。 一、主服务器配置 1. 编辑数据库配置文件 my.cnf, 一般在/etc/目录下。 2. 在[mysqld]下面加入以下代码: * log-bin=mysql...
### MySQL主从同步镜像备份知识点详解 #### 一、MySQL主从同步基本概念 - **主从复制机制**:MySQL中的主从复制是一种数据复制技术,它将一个数据库(主服务器)的数据复制到另一个或多个数据库(从服务器),以此...
### MySQL主从同步备份 #### 一、MySQL主从同步的作用与原理 ##### 作用 MySQL主从同步机制主要用于实现以下几种应用场景: 1. **数据分布**:通过将数据复制到多个从服务器,可以在不同地理位置分发数据,提高...
MySQL 主从同步是指将一个 MySQL 服务器的数据实时地复制到另一个 MySQL 服务器上,以提高数据库的高可用性和灾难恢复能力。在本文中,我们将详细介绍如何在一台服务器上配置两个 MySQL 服务器,以实现主从同步。 ...
MySQL 5.7主从复制是数据库高可用性和负载均衡的一种常见实现方式,它通过将主数据库(Master)上的写操作同步到一个或多个从数据库(Slave)来实现数据的冗余备份和读写分离。在Java开发中,MySQL主从复制常常用于...