一、配置mysql主从同步的步骤:

(1) 在主服务器上,必须开启二进制日志机制和配置一个独立的ID

(2) 在每一个从服务器上,配置一个唯一的ID,创建一个用来专门复制主服务器数据的账号

(3) 在开始复制进程前,在主服务器上记录二进制文件的位置信息

(4) 如果在开始复制之前,数据库中已经有数据,就必须先创建一个数据快照(可以使用mysqldump导出数据库,或者直接复制数据文件)

(5) 配置从服务器要连接的主服务器的IP地址和登陆授权,二进制日志文件名和位置

示例:以ubuntu的MySQL(5.7.22)作为主机 ,使用Dokcer安装的MySQL作为从机

二、安装、配置主从服务Mysql服务器

1、安装MySQL主机

1. sudo apt-get install mysql-server2. apt-get isntall mysql-client3. sudo apt-get install libmysqlclient-dev

2、安装MySQL从机

在docker里面安装mysql的镜像, 此版本的镜像,尽量和MySQL主机版本一致

(1)可以从docker官方拉取镜像 :

docker image pull mysql:5.7.22

(2)本地已有docker的镜像可以直接安装:

docker load -i mysql_docker_5722.tar

3、指定从机配置文件

运行mysql docker镜像,需要在宿主机中建立文件目录于mysql容器保存数据和读取配置文件。

在家目录下创建mysql_slave文件夹, 放入mysql的配置文件,

这里最后一行命令是直接复制主机mysql的配置文件, 再去修改就可以了

cd ~

mkdirmysql_slave

cd mysql_slavemkdirdatacp -r /etc/mysql/mysql.conf.d ./ #将位于/etc的mysql主机的配置文件拷到家目录下,修改后作为从机的配置文件

4、配置从机

将docker运行的mysql作为slave运行, 开启前需配置文件

修改port , server-id和主机做区分, 主机分别是3306, 1 , 另外不开启日志

sudo vim ~/mysql_slave/mysql.conf.d/mysqld.cnf

port= 8306 # 区别开主服务器的3306,定义为8306general_log= 0server-id = 2 #主服务器id设为1,从服务器只要不是1都行,这边取2

5、创建docker容器

创建docker容器,    MYSQL_ROOT_PASSWORD 是创建mysql root用户的密码,指定ubuntu和docker里面映射的路径(-v后面就是指定的映射路径),详细命令如下:

docker run --name mysql-slave -e MYSQL_ROOT_PASSWORD=mysql -d --network=host -v /home/python/mysql_slave/data:/var/lib/mysql -v /home/python/mysql_slave/mysql.conf.d:/etc/mysql/mysql.conf.d mysql:5.7.22

测试, 在ubuntu中使用mysql命令尝试连接docker容器中的mysql

mysql -uroot -pmysql -h 127.0.0.1 --port=8306

接下来备份初始主服务器的内容到从服务器(冷备份),后续的主从同步(热备份)则通过二进制日志来传输:

三、备份数据及主从同步配置

1、冷备份

1.登录到MySQL主机,收集数据

mysqldump -uroot -pmysql --all-databases --lock-all-tables > ~/master_db.sql

2.登录到MySQL从机,同步数据

mysql -uroot -pmysql -h127.0.0.1 --port=8306 < ~/master_db.sql

2、配置主机Mysql

编辑设置mysqld的配置文件, 设置log_bin 和server_id

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

server-id = 1log_bin= /var/log/mysql/mysql-bin.log

重启主机mysql服务

sudo service mysql restart

3、热备份:主从同步

(1)、登入主服务器Ubuntu中的mysql,创建用于从服务器同步数据使用的帐号, 这里是slave

mysql –uroot –pmysql

GRANT REPLICATION SLAVE ON*.* TO 'slave'@'%' identified by 'slave';#*.*表示所有表,第一个slave表示账号,第二个slave表示密码

FLUSH PRIVILEGES;

(2)、获取主服务器的二进制日志信息, 查看File , Position

File为使用的日志文件名字,Position为使用的文件位置,这两个参数须记下,配置从服务器时会用到。

SHOW MASTER STATUS;

(3)、进入docker中的mysql配置从服务器的slave:

mysql -uroot -pmysql -h 127.0.0.1 --port=8306

执行:

change master to master_host='127.0.0.1', master_user='slave', master_password='slave',master_log_file='mysql-bin.000006', master_log_pos=590;

说明:

master_host:主服务器Ubuntu的ip地址

master_log_file: 前面查询到的主服务器日志文件名======File

master_log_pos: 前面查询到的主服务器日志文件位置======Position

(4)、这时候已经配置完成, 尝试启动slave服务器, 并查看同步状态

start slave;

show slave status \G

如果 显示Slave_IO_Running :Yes, Slave_SQL_Running: Yes  表示同步已经正常运行

转自:https://blog.csdn.net/skyjianwei/article/details/81058205

django给mysql配主从_django中的mysql主从读写分离:一、配置mysql主从分离相关推荐

  1. django mysql sql语句_Django中使用mysql数据库并使用原生sql语句操作

    Django自身默认使用sqlite3这个轻量级的数据库,但是当我们开发网站时,sqlite3就没有mysql好,sqlite3适合一些手机上开发使用的数据库. 准备的软件 mysql数据库,版本5. ...

  2. mysql for centos下载_python数据分析之路——centos下载并配置mysql与navicat的使用

    python数据分析之路--centos下载并配置mysql与navicat的使用 在之前的文章中已经说明了如何购买并配置一台自己的服务器,那么在安装完anaconda之后,为了之后方便用Django ...

  3. springboot原生mysql写法_【Rainbond最佳实践】Spring Boot框架配置MySQL

    Rainbond开源软件介绍: Rainbond是国内首个开源的生产级无服务器PaaS. 深度整合基于Kubernetes的容器管理.多类型CI/CD应用构建与交付.多数据中心的资源管理等技术,提供云 ...

  4. python django mysql结果获取_Django中从mysql数据库中获取数据传到echarts方式

    尝试了几种方法,感觉过于复杂,于是自己写了一个方法. (1)首先在要绘图的页面传入从数据库中提取的参数,这一步通过views可以实现: (2)然后是页面加载完成时执行的函数ready,调用方法f; ( ...

  5. django和mysql如何建模_Django中的多个数据库和多个模型

    小编典典 我完全同意@alecxe使用数据库路由器.我目前正在使用一个管理界面来管理多个数据库.请注意,所有数据库的身份验证都存储在默认数据库中,因此当你执行syncdb(不带参数)时. 通用数据库路 ...

  6. python获取mysql数据为excel中的sheet_python 从excel、csv、mysql、txt获取数据源

    使用python进行数据分析工作的第一步是获取数据源,数据源来可能来自于excel.txt.csv文件.mysql数据库. 分别看看这些数据源怎么导入到python中. 1. Excel 数据源导入p ...

  7. 用软件创建一个mysql的数据库_JSP中的数据库操作(1):MySQL数据库创建及管理...

    本文目录顺序: 安装MySQL MySQL管理软件SQLYog Enterprise --30天试用期到期解决方法 使用SQLYog Enterprise建立数据库 MySQL的各项参数 1. 安装M ...

  8. mysql实体监听器_11gR2中的SCAN监听器和本地监听器配置

    11.2 Scan and Node TNS Listener Setup Examples [ID 1070607.1] 修改时间 29-JAN-2012 类型 HOWTO 状态 PUBLISHED ...

  9. mysql数据库搭建动态网站_动态网站搭建之如何配置Mysql数据库连接详细教程讲解...

    众所周知,网站分静态网站和动态网站,那么什么是静态和动态呢?又怎么区分呢? 动态网站体现在网页一般是以asp,jsp,php,aspx等技术编写的网页,但也可以使用URL静态化技术,使网页后缀显示为H ...

最新文章

  1. A Crowdsourcing Method for Correcting Sequencing Errors for the Third-generation Sequencing Data 一种用
  2. Java获取文件路径
  3. 学完Web前端后发展方向有哪些呢?
  4. centos虚拟机ping不通 报错 name or service not known
  5. RMS 相关下载链接
  6. 2015蓝桥杯省赛---java---C---9(打印大X)
  7. USB转WIFI无线网卡驱动程序(RT5370驱动程序)的移植记录之一
  8. 大学英语四六各项分值
  9. mysql核心参数_MySQL技术体系之核心参数
  10. Python Selenium之异常处理
  11. Fission:基于 Kubernetes 的 Serverless 函数框架
  12. Java并发编程技术
  13. vb代码转为c++代码_VB源码转换工具(VBto Converter)
  14. 视频教程-汇编语言程序设计IV-其他
  15. raw文件格式 Android,手机摄影知识讲堂:关于RAW格式的那些事
  16. 最大公约数和最小公倍数
  17. 一天完成写出一篇SCI论文
  18. 【文献阅读】ERNIE: Enhanced Representation through Knowledge Integration
  19. 脸上长了黄褐斑怎么办
  20. Notepad++设置记录

热门文章

  1. 如何截取_【实用技巧】如何截取网页长图
  2. 计算机与自动化专业有哪些学校,全国自动化专业大学排名
  3. 5位院士谈科研瓶颈:必须“逼着自己在精神上愿意吃苦”
  4. 国外数学奇才称:“平行线可相交”,到死未被认可,12年后被证实
  5. 谷歌AI算法 助力可控核聚变研究
  6. nginx缓存HtmL文件,Nginx在缓存的html文件上返回404
  7. d630 无线驱动 linux,fedora 8下DELL D630无线网卡驱动的安装
  8. 用java实现楼层导航_JS实现网站楼层导航效果代码实例
  9. 【Numpy】array操作总结
  10. I begin to keep a daily