MySql主从搭建、复制及配置实现
来源:互联网 发布:网络保密协议范本 编辑:程序博客网 时间:2024/06/05 08:58
主从搭建
搭建的版本是:5.6.36,zip压缩版,这个版本很重要,5.7的因为没有data文件需要另一套的执行方式。windows环境,一个物理主机,两个MySQL,通过修改端口号的方式实现。将my-default.ini改名为my.ini之后,两个my.ini文件的内容分别是
端口3306的主MySQL:
basedir = E:\complie\mysql\mysql0datadir = E:\complie\mysql\mysql0dataserver_id = 1port = 3306log-bin=mysql-bin端口3307的从MySQL:
basedir = E:\complie\mysql\mysql1datadir = E:\complie\mysql\mysql1dataserver_id = 2port = 3307log-bin=mysql-bin配置好环境变量后,分别在其对应的bin文件中执行有选择的命令,记得用管理员的身份打开cmd
mysqld --install mysql3306 #安装mysqld remove mysql3306 #不成功时可以使用此命令删除net start mysql3306 #启动服务net stop mysql3306 #停止服务最重要的两步,修改注册表,将默认data中的数据拷贝到新的data中去
由于在本机搭建了两个MySQL,需要手动修改注册表,不然在安装第二个mysql的时候就会出现问题,因此,要把第二个的注册表的image路径修改了
修改方式:在开始菜单输入regedit命令打开注册表,找到HKEY_LOCAL_MACHINE -> SYSTEM -> CurrentControlSet -> services -> mysql3307,选中后将ImagePath参数值改成“E:\complie\mysql\mysql0\bin\mysqld” –defaults-file=”E:\complie\mysql\mysql1\my.ini” mysql3307
由于修改了默认的数据存放的路径,因此在需要将解压后MySQL中data文件中的内容拷贝到新的data文件夹中去,不然会出现各种奇怪的问题
主从配置
关于主从复制的原理,可以参考这篇文章https://segmentfault.com/a/1190000008942618主MySQL执行
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'127.0.0.1' IDENTIFIED BY '123456';FLUSH PRIVILEGES;SHOW MASTER STATUS;
从MySQL执行
CHANGE MASTER TO MASTER_HOST='127.0.0.1',MASTER_PORT=3306,MASTER_USER='slave',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysqld-bin.000001',MASTER_LOG_POS=426;START SLAVE;SHOW SLAVE status
停止slave,删除主从关系
stop slave;
reset slave all;
重启master命令:reset master;
出现的问题:
Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the --replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it).
主从my.cnf中的server_id并不同,google之后,发现主从数据目录(/data/mysql)都有一个auto.cnf文件,里面记录的server-uuid是相同的,把从服务器的此文件删除,并重启服务器,连接成功
产生以上错误的原因是本人在在虚拟机上配置,只在一个服务器上装了mysqld,然后复制了服务器,导致两服务器的mysql配置完全相同,实际中应该不会遇到此问题
Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'
从:mysql>stop slave;
主:mysql>flush logs;
主:mysql>show master status;
从:mysql> CHANGE MASTER TO MASTER_LOG_FILE='mysqld-bin.000002',MASTER_LOG_POS=120;
从:mysql> slave start;
以上两个问题解决后可以看到,从的salve_IO_state变为Waiting for master to send event,这样就是成功的,从主MySQL建立新的数据库后,从MySQL也可以同步建立
读写分离命令
读锁
mysql> flush tables with read lock;
mysql> set global read_only=1;
读写锁
mysql> unlock tables;
mysql> set global read_only=0;
mysql> set global read_only=1;
读写锁
mysql> unlock tables;
mysql> set global read_only=0;
数据库的读写分离的好处
阅读全文
1 0
- MySql主从搭建、复制及配置实现
- MySQL主从复制配置实现
- mysql主从复制的原理及配置实现
- mysql主从复制的原理及配置实现
- mysql主从复制的原理及配置实现
- Mysql主从复制搭建及详解
- MySQL主从复制原理及搭建
- 【MySQL】主从复制原理及配置
- Mysql主从复制原理及配置
- Mysql主从复制配置及测试
- mysql主从复制原理及配置步骤
- Mysql主从复制原理及配置
- MySQL主从复制原理及配置
- MySQL主从复制原理及基本配置
- Mysql主从复制原理及配置
- Mysql主从复制原理及配置
- MySQL主从复制原理及配置
- Mysql主从复制原理及配置
- java中反射操作公共成员变量
- 工具使用:git使用方法
- 安卓连接打印机指令
- 老鼠运动Html
- R语言导入EXCEL数据
- MySql主从搭建、复制及配置实现
- 编译报错libcurl.a: No such file or directory
- Java多线程之优先级setPriority
- 高效简洁按键扫描程序模板
- soket 地址羽端口的绑定关系
- 数组移位
- JAVAEE开发——在线订购子系统(三)
- ES6中变量的解构与赋值
- 插件化开发