分类信息
各地考试

当前位置:首页 » Linux认证 » 综合辅导 » 正文

Linux数据库综合辅导:MySql配置主从复制读写分离


时间:2013-10-21 来源:Linux认证考试网 浏览次数:146  【华夏培训网:中国教育培训第一门户

主从复制需要通过二进制日志文件进行,须开启二进制日志功能并配置Server ID  [mysqld]  log-bin=mysql-bin  server-id=


       主从复制需要通过二进制日志文件进行,须开启二进制日志功能并配置Server ID

  [mysqld]

  log-bin=mysql-bin

  server-id=1

  server-id 为1-232 -1  之间,默认为0(拒绝所有slave)

  innodb引擎耐用性增强

  innodb_flush_log_at_trx_commit=1 and sync_binlog=1

  For the greatest possible durability and consistency in a replication setup using InnoDB with transactions, you should use innodb_flush_log_at_trx_commit=1 and sync_binlog=1 in the master my.cnf file.

  slave 配置

  server-id=2

  防止服务器主机名修改

  relay-log=mysqld-relay-bin

  master

  创建具有复制权限的账户repl

  GRANT REPLICATION SLAVE ON *.*

  -> TO 'repl'@'remotehost.mydomain.com' IDENTIFIED BY 'slavepass';

  mysql> FLUSH TABLES WITH READ LOCK;

  对于InnoDB表的注意 FLUSH TABLES WITH READ LOCK块 COMMIT操作。

  保留客户端发出 FLUSH TABLES语句运行,这样,读锁仍然有效。如果你退出客户端,该锁被释放。

  使用 SHOW MASTER STATUS语句来确定当前的二进制日志文件的名称和位置:

  的mysql> SHOW MASTER STATUS;

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

  |"文件"|"位置| Binlog_Do_DB | Binlog_Ignore_DB |

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

  MYSQL-bin.000003 | 73 |测试|说明书,MYSQL |

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

  文件栏显示的日志文件的名称和位置显示在文件中的位置。在这个例子中,二进制日志文件是 mysql-bin.000003的位置是73.记录这些值。你需要它们,以后当你设立的奴隶。他们表示复制坐标奴隶从主应该开始处理新的更新。

  如果主已经运行以前没有二进制日志启用,通过SHOW MASTER STATUS或mysqldump的-主数据显示日志文件的名称和位置值将是空的。在这种情况下,你需要使用指定的奴隶的日志文件和位置后的值是空字符串('')和4.

  你现在有你需要的信息,可以让从开始读取的二进制日志在正确的位置开始复制。

  设置主从连接信息

  mysql> CHANGE MASTER TO

  ->     MASTER_HOST='master_host_name',

  ->     MASTER_USER='replication_user_name',

  ->     MASTER_PASSWORD='replication_password',

  ->     MASTER_LOG_FILE='recorded_log_file_name',

  ->     MASTER_LOG_POS=recorded_log_position;

  查看连接状态 show slave status\G;

  读写分离配置

  windows设置PATH

  创建代理 222为Master 223为只读

  sc create "Proxy" DisplayName= "MySQL Proxy" start= "auto" binPath= "F:\tool\mysql-proxy-0.8.2-winx64-x86\bin\mysql-proxy-svc.exe

  --proxy-address=localhost:3306 --proxy-backend-addresses=10.133.10.222:3306 --proxy-read-only-backend-addresses=10.133.10.223:3306"

  net start proxy

  C:\> sc delete proxy

  配置完之后测试,从服务器 stop slava

  通过代理进行insert操作,在进行查询。然后start slave ,主从复制没有问题。

  读写分离暂时还未测试





       Linux认证

推荐图文

热门点击排行

©2015 hxpx.com All Rights Reserved 滇ICP备13002816号-1
华夏培训网唯一网址www.hxpx.com