博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL主从配置实现(同一台主机)
阅读量:5218 次
发布时间:2019-06-14

本文共 2093 字,大约阅读时间需要 6 分钟。

MySQL主从(同一台主机)//

1.安装配置MySQL

参考之前步骤搭建MySQL服务
为了做实验方便,我们在同一台机器上配置两个MySQL服务(跑两个端口)

cd /usr/local/

cp -rv mysql mysql_2
cd mysql_2
初始化mysql_2 : ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql2
拷贝配置文件:cp /etc/my.cnf ./my.cnf
修改配置文件相关参数: vim my.cnf #更改port以及socket
启动:/usr/local/mysql_2/bin/mysqld_safe --defaults-file=/usr/local/mysql_2/my.cnf --user=mysql &
若开机启动,需要加入到/etc/rc.local中

2.配置主从准备工作

设定mysql_2,为主端口3307,mysql为从端口3306
在主上创建测试库 : create database db1;
然后导出主的mysql库数据然后导入给db1
mysqldump -uroot -S /tmp/mysql2.sock mysql > 123.sql;
mysql -uroot -S /tmp/mysql2.sock db1 < 123.sql

3.配置主(master)

vim /usr/local/mysql_2/my.cnf #修改或者添加:
server-id=1
log-bin=mysql-bin
两个可选参数(2选1)
binlog-do-db=db1,db2 #需要同步的库
binlog-ignore-db=db1,db2 #忽略不同步的库
修改配置文件后,重启mysql_2
pid=`ps aux|grep mysql2.sock|grep -v grep|awk '{print $2}'`;kill $pid; cd /usr/local/mysql_2/bin/; ./mysqld_safe --defaults-file=../my.cnf --user=mysqld &
设置root密码:mysqladmin -uroot -S /tmp/mysql2.sock password '123456'
grant replication slave on *.* to 'repl'@'127.0.0.1' identified by '123123';
flush tables with read lock;
show master statusl#一定要记住前两列的内容,待会会用到

4.设置从(slave)

vim /etc/my.cnf #修改或增加
server-id=2 #这个数值不能和主一样
可选参数:replicate-do-db=db1,db2
replicate-ignore-db=db1,db2 #意义同主的两个可选参数
service mysqld restart
拷贝主的db1库数据到从: mysqldump -uroot -S /tmp/mysql2.sock -p123456 db1 > db1.sql;
mysql -uroot -p -e"create database db1";mysql -uroot -p db1 < db1.sql
mysql -uroot -p #登陆从的MySQL
slave stop;
change master to master_host='127.0.0.1',master_port=3307,master_user='repl',master_password='123123',master_log_file='mysql-bin.000006',master_log_pos=474952;
slave start;
主上:mysql -uroot -S /tmp/mysql2.sock -p123456 -e "unlock tables"
从上查看从的状态:show slave status\G;

5.测试主从
主上清空db1库的db表:use db1 ; select count(*) from db;truncate table db;
进入salve,查看db1库db表:use db1;select count(*)from db;
主上删除表db: drop table db;
从上看db表不存在了
建议:MySQL主从机制比较脆弱,需要谨慎操作。如果重启master,务必要先把slave停掉,也就是说需要在salve上去执行,salve stop 命令,然后再去重启master的MySQL服务,否则很可能就会中断了。当重启完后,还需要把salve给开启 salve start

转载于:https://www.cnblogs.com/ImJerryChan/p/6567294.html

你可能感兴趣的文章
我是如何理解Android的Handler模型_3
查看>>
《Java知识点列表》V1.0
查看>>
恢复数据的国产神器DiskGenius
查看>>
ERP SYSTEM 开发平台搭建
查看>>
菜鸟学IT之四则运算升级版
查看>>
异常检测
查看>>
水平方向瀑布流
查看>>
[翻译] AsyncImageView 异步下载图片
查看>>
ThinkPHP+JQuery实现文件的异步上传
查看>>
领域驱动架构学习总结
查看>>
android studio 报红解决
查看>>
Houdini技术体系 过程化地形系统(一):Far Cry5的植被系统分析
查看>>
JS控制语句及小练习
查看>>
[django] 利用多线程添加异步任务
查看>>
js函数式编程1-1
查看>>
【Android笔记】Android完全关闭应用程序
查看>>
[.Net 多线程处理系列]专题三:线程池中的I/O线程
查看>>
python中pandas库中DataFrame对行和列的操作使用方法
查看>>
洛谷P1059 明明的随机数 题解
查看>>
stark组件开发之列表页面定制列
查看>>