十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
Mysql的 Replication 是一个异步的复制过程,从一个 Mysql instace(我们称之为 Master)复制到另一个 Mysqlinstance(我们称之 Slave)。在 Master 与 Slave 之间的实现整个复制过程主要由三个线程来完成,其中两个线程(Sql线程和IO线程)在 Slave 端,另外一个线程(IO线程)在 Master 端。
创新互联公司是专业的吕梁网站建设公司,吕梁接单;提供成都网站制作、成都网站建设、外贸营销网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行吕梁网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
MySQL 复制的基本过程如下:
1. Slave 上面的IO线程连接上 Master,并请求从指定日志文件的指定位置(或者从最开始的日志)之后的日志内容;
2. Master 接收到来自 Slave 的 IO 线程的请求后,通过负责复制的 IO 线程根据请求信息读取指定日志指定位置之后的日志信息,返回给 Slave 端的 IO 线程。返回信息中除了日志所包含的信息之外,还包括本次返回的信息在 Master 端的 BinaryLog 文件的名称以及在 Binary Log 中的位置;
3. Slave 的 IO 线程接收到信息后,将接收到的日志内容依次写入到 Slave 端的Relay Log文件(mysql-relay-bin.xxxxxx)的最末端,并将读取到的Master端的bin-log的文件名和位置记录到master- info文件中,以便在下一次读取的时候能够清楚的高速Master“我需要从某个bin-log的哪个位置开始往后的日志内容,请发给我”
4. Slave 的 SQL 线程检测到 Relay Log 中新增加了内容后,会马上解析该 Log 文件中的内容成为在 Master 端真实执行时候的那些可执行的 Query 语句,并在自身执行这些 Query。这样,实际上就是在 Master 端和 Slave 端执行了同样的 Query,所以两端的数据是完全一样的。
准备工作: mysql库的安装。
python中mysql库用的是mysql-connector,安装执行如下命令:
第一步: 连接mysql,读取数据。
通过执行sql语句,读取mysql数据。
至此,获得mysql的原始数据raw_data 。接下来对数据进行预处理,按日期进行分组聚合,然后重命名行和列名,得到dataFrame格式的数据。
第二步: 连接ES。
这步没有太多的可解释的地方,就是配置信息。
第三步: ES主键加密。
这步的目的是为了保持主键唯一性,防止重复写入。用的方法是md5加密。
第四步: 写入ES
至此,一切的准备工作都做好了,数据也有了,主键加密也做了,就开始写入了。
用main方法执行以上方法:
最后查看一下ES写的是否成功,用查询方法
如果返回以下信息,说明ES里成功插入了数据。
另外,ES删除索引的操作:
1、首先打开MYSQL的管理工具,新建一个test表,并且在表中插入两个字段。
2、接下来在Editplus编辑器中创建一个PHP文件,进行数据库连接,并且选择要操作的数据库。
3、然后通过mysql_query方法执行一个Insert的插入语句。
4、执行完毕以后,回到数据库管理工具中,这个时候你会发现插入的中文乱码了。
5、接下来在PHP文件中通过mysql_query执行一个set names utf8语句。
6、接下来执行以后回到MYSQL数据库中,发现插入的中文显示正常了,即成功往mysql中写入数据了。
我刚给公司做完mysql的主从读写分离
先给你个思路
第一步:先做mysql的主从(Master/Slave Replication),实现数据同步
第二部:通过Amoeba来实现读写分离,也可以通过mysql proxy(比较麻烦)。
ps:
我的环境是两台装windows server 2008,一台做主,一台做从。
如果你需要的话,留下邮箱,我发给你一个我自己刚做好的文档。照着做就可以了