在配置Mysql数据库主从复制集群时间,以确保:
1.主从server操作系统版本号和位数一致。
2.Mysql版本号一致。
为了保证稳定性,最好server操作系统和Mysql数据库环境一致。
CentOSserver上Mysql的安装方法能够參见博客:
http://blog.csdn.net/jhq0113/article/details/43812895
server配置:
Master:192.168.1.18
Slave:192.168.1.16
Master(192.168.1.18)server:
1.编辑/etc/my.cnf
[root@jhq0229 ~]# vim /etc/my.cnf
2.配置
[mysqld] datadir=/data/mysql socket=/var/lib/mysql/mysql.sock user=mysql #主从复制配置 innodb_flush_log_at_trx_commit=1 sync_binlog=1 #须要备份的数据库 binlog-do-db=orders #不须要备份的数据库 binlog-ignore-db=mysql #启动二进制文件 log-bin=mysql-bin #服务器ID server-id=1 # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
若没有配置binlog-do-db和binlog_ignore_db,表示备份所有数据库。
3.重新启动Mysqld服务
[root@jhq0229 ~]# service mysqld restart
4.为从Mysql创建用户
登录
[root@jhq0229 ~]# mysql -uroot -p
Enter password:
创建用户
mysql> create user 'mastj'@'192.168.1.16' identified by '123456';
配置主从复制权限
mysql> grant replication slave on *.* to 'mastj'@'192.168.1.16' identified by '123456';
若orders数据库中已经有数据,还须要:
锁定数据库
mysql> flush tables with read lock;
将数据导入到从数据库,方法有多种。我是用Navicat复制的。复制完毕后:
查看master状态并解锁:
mysql> show master status; +------------------+----------+--------------+------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +------------------+----------+--------------+------------------+-------------------+ | mysql-bin.000003 | 2005 | orders | mysql | | +------------------+----------+--------------+------------------+-------------------+ 1 row in set (0.00 sec) mysql> unlock tables;
Slave(192.168.1.16)server:
1.配置服务ID
[root@jhq0113 ~]# vim /etc/my.cnf
在[mysqld]以下增加
server-id=2
重新启动Mysql服务
[root@jhq0113 ~]# service mysqld restart
2.配置复制
登录mysql
[root@jhq0113 ~]# mysql -uroot -p
运行
mysql> change master to master_host='192.168.1.18',
master_user='mastj',
master_password='123456',
master_port=3306,
master_log_file='mysql-bin.000003',
master_log_pos=2005,
master_connect_retry=10;
參数具体解释:
master_host:主server的IP。
master_user:配置主server时建立的username
master_password:用户密码
master_port:主servermysql端口。假设未曾改动,默认就可以。
master_log_file:日志文件名,填写查看master状态时显示的File
master_log_pos:日志位置。填写查看master状态时显示的Position
master_connect_retry:重连次数
启动进程
mysql> start slave;
检查主从复制状态
mysql> show slave statusG *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.1.18 Master_User: mastj Master_Port: 3306 Connect_Retry: 10 Master_Log_File: mysql-bin.000003 Read_Master_Log_Pos: 2369 Relay_Log_File: jhq0113-relay-bin.000002 Relay_Log_Pos: 647 Relay_Master_Log_File: mysql-bin.000003 Slave_IO_Running: Yes Slave_SQL_Running: Yes若Slave_IO_Running和Slave_SQL_Running均为Yes。则表示连接正常。
在这一点上是可能的测试主从复制。
版权声明:本文博客原创文章。博客,未经同意,不得转载。