首页 数据库 mysql教程 进击的MysqlSlave环境搭建及配置

进击的MysqlSlave环境搭建及配置

Jun 07, 2016 pm 05:41 PM
service 数据库 源代码

一)环境拓扑今天讨论的是mysql集群这一块,资源如下所示:二)Mysql安装配置这里不一一赘述,可以选择源代码编译安装,也可以参考我之前的一篇博文“懒人“速成

一)环境拓扑

二)Mysql安装配置

   这里不一一赘述,可以选择源代码编译安装,也可以参考我之前的一篇博文“懒人“速成——linux LAMP环境。

三)节点配置

主节点:

   1.首先在数据库中建立2个数据库和表:

#service mysqld start #mysql mysql>create database www; mysql>use www; mysql>create table www(id int); mysql>insert into www values(1); mysql> select * from www;

   查看数据: ;

   同理创建blog数据库和表:

mysql>create database blog; mysql>use blog; mysql>create table blog(id int); mysql>insert into blog values(1); mysql> select * from blog;

 进击的MysqlSlave环境搭建及配置


2.修改My.cnf配置文件

vi etc/my.cnf[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 log-bin=mysql-bin //日志为2进制,不需要更改 server-id =1 //为1就是Master,不需要更改 binlog-do-db=blog //需要同步的库 binlog-do-db=www //需要同步的库 binlog-ignore-db=mysql,test,information_schema //不需要记录日志的数据库名,多个数据库中间用逗号(,)隔开 innodb_data_home_dir = /usr/local/mysql/data/ //innodb的表空间位置 innodb_data_file_path = ibdata1:50M:autoextend //表空间的名字,开始50M innodb_log_group_home_dir = /usr/local/mysql/data/ innodb_buffer_pool_size = 256M //为系统内存的50-80% innodb_additional_mem_pool_size = 20M innodb_log_file_size = 64M innodb_log_buffer_size = 8M innodb_flush_log_at_trx_commit = 1 innodb_lock_wait_timeout = 50 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid

   3.重启数据库

[root@Test01 /]# service mysqld restart


Stopping mysqld: [ OK ] Starting mysqld: [ OK ]

4.创建有权限的账号,让Slave数据库访问主数据库


[root@Test01 /]# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.1.69-log Source distribution Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>



mysql> grant replication slave on *.* to repl@"192.168.1.26" identified by '123456'; Query OK, 0 rows affected (0.00 sec)



mysql>flush privileges; ;

 5.备份Master数据库


mysql> flush tables with read lock; //不要退出这个终端,否则这个锁就不生效了。 同时取得快照,并记录日志和偏移量: mysql> show master status; +------------------+----------+--------------+-------------------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+-------------------------------+ | mysql-bin.000001 | 196 | blog,www | mysql,test,information_schema | +------------------+----------+--------------+-------------------------------+ 1 row in set (0.00 sec)

6.开启另一个终端,对主数据库做快照


[root@Test01 mysql]#cd /var/lib/mysql/ [root@Test01 mysql]#tar -zcvf backup.tar.gz www blog

 7.库解锁


mysql> unlock tables;

从节点:

   1.安装mysql,方法同上,不在赘述。

   2.修改My.cnf配置文件


[root@Test02 mysql]# vi /etc/my.cnf [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 log-bin=mysql-bin server-id = 2 #master-host = 192.168.1.10 #master-user = root #master-password = 584911644 #master-port = 3306 #master-log-pos = 196 #master-log-file = mysql-bin.000001 #master-connect-retry=60 replicate-do-db=www //告诉slave只做www数据库的更新 replicate-do-db=blog //告诉slave只做blog数据库的更新 log-slave-updates [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid "/etc/my.cnf" 23L, 551C

3.把之前主数据库压缩的数据拷贝到对应位置

我这里用的是SecureFX,当然,方法很多,免备案空间,也不细说了,可谓是条条大路通罗马。

4.启动数据库


[root@Test02 mysql]# service mysqld start


Starting mysqld: [ OK ]

5.配置,启动Slave

mysql> slave stop; Query OK, 0 rows affected (0.00 sec) mysql> change master to master_host='192.168.1.10',master_user='repl',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=196; Query OK, 0 rows affected (0.04 sec) mysql> slave start; Query OK, 0 rows affected (0.00 sec) mysql> show slave status\G; *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.1.10 Master_User: repl Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000001 Read_Master_Log_Pos: 339 Relay_Log_File: mysqld-relay-bin.000002 Relay_Log_Pos: 394 Relay_Master_Log_File: mysql-bin.000001 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: www,blog Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 339 Relay_Log_Space: 550 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Master_SSL_Allowed: No Master_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 0 Master_SSL_Verify_Server_Cert: No Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 0 Last_SQL_Error: 1 row in set (0.00 sec)

四)后期测试

主节点-数据增加:


mysql> insert into www values(2); Query OK, 1 row affected (0.00 sec) mysql> select * from www; +------+ | id | +------+ | 1 | | 2 | +------+ 2 rows in set (0.00 sec)

从节点数据同步验证:


mysql> select * from www; +------+ | id | +------+ | 1 | | 2 | +------+ 2 rows in set (0.00 sec)

主节点-数据删除:


mysql> delete from www where id ='2'; Query OK, 1 row affected (0.04 sec) mysql> select * from www; +------+ | id | +------+ | 1 | +------+ 1 row in set (0.00 sec)

从节点数据同步验证:


mysql> select * from www; +------+ | id | +------+ | 1 | +------+ 1 row in set (0.00 sec)


综述:

   Test02,从数据库上能做到同步数据库的更新操作,香港虚拟主机,目前是WWW和blog两张表。当然,这里只是抛砖引玉的作用,大家可以举一反三,根据自己实际需求,做出最好的环境搭建和配置。

   最近在弄RHCS和keepalived,闲来有空就记录几笔数据库slave配置,方便大家学习和自己的积累。


本文出自 “Aaron” 博客,虚拟主机,请务必保留此出处

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Go语言如何实现数据库的增删改查操作? Go语言如何实现数据库的增删改查操作? Mar 27, 2024 pm 09:39 PM

Go语言是一种高效、简洁且易于学习的编程语言,因其在并发编程和网络编程方面的优势而备受开发者青睐。在实际开发中,数据库操作是不可或缺的一部分,本文将介绍如何使用Go语言实现数据库的增删改查操作。在Go语言中,我们通常使用第三方库来操作数据库,比如常用的sql包、gorm等。这里以sql包为例介绍如何实现数据库的增删改查操作。假设我们使用的是MySQL数据库。

在PHP中使用MySQLi建立数据库连接的详尽教程 在PHP中使用MySQLi建立数据库连接的详尽教程 Jun 04, 2024 pm 01:42 PM

如何在PHP中使用MySQLi建立数据库连接:包含MySQLi扩展(require_once)创建连接函数(functionconnect_to_db)调用连接函数($conn=connect_to_db())执行查询($result=$conn->query())关闭连接($conn->close())

Hibernate 如何实现多态映射? Hibernate 如何实现多态映射? Apr 17, 2024 pm 12:09 PM

Hibernate多态映射可映射继承类到数据库,提供以下映射类型:joined-subclass:为子类创建单独表,包含父类所有列。table-per-class:为子类创建单独表,仅包含子类特有列。union-subclass:类似joined-subclass,但父类表联合所有子类列。

iOS 18 新增'已恢复”相册功能 可找回丢失或损坏的照片 iOS 18 新增'已恢复”相册功能 可找回丢失或损坏的照片 Jul 18, 2024 am 05:48 AM

苹果公司最新发布的iOS18、iPadOS18以及macOSSequoia系统为Photos应用增添了一项重要功能,旨在帮助用户轻松恢复因各种原因丢失或损坏的照片和视频。这项新功能在Photos应用的"工具"部分引入了一个名为"已恢复"的相册,当用户设备中存在未纳入其照片库的图片或视频时,该相册将自动显示。"已恢复"相册的出现为因数据库损坏、相机应用未正确保存至照片库或第三方应用管理照片库时照片和视频丢失提供了解决方案。用户只需简单几步

MySQL数据库管理系统的基本原理解析 MySQL数据库管理系统的基本原理解析 Mar 25, 2024 pm 12:42 PM

MySQL数据库管理系统的基本原理解析MySQL是一种常用的关系型数据库管理系统,它通过结构化查询语言(SQL)来进行数据存储和管理。本文将介绍MySQL数据库管理系统的基本原理,包括数据库的创建、数据表的设计、数据的增删改查等操作,并提供具体的代码示例。一、数据库的创建在MySQL中,首先需要创建一个数据库实例来存储数据。通过以下代码可以创建一个名为"my

深入解析HTML如何读取数据库 深入解析HTML如何读取数据库 Apr 09, 2024 pm 12:36 PM

HTML无法直接读取数据库,但可以通过JavaScript和AJAX实现。其步骤包括建立数据库连接、发送查询、处理响应和更新页面。本文提供了利用JavaScript、AJAX和PHP来从MySQL数据库读取数据的实战示例,展示了如何在HTML页面中动态显示查询结果。该示例使用XMLHttpRequest建立数据库连接,发送查询并处理响应,从而将数据填充到页面元素中,实现了HTML读取数据库的功能。

PHP处理数据库中文乱码的技巧与实践 PHP处理数据库中文乱码的技巧与实践 Mar 27, 2024 pm 05:21 PM

PHP是一种广泛应用于网站开发的后端编程语言,它具有强大的数据库操作功能,常用于与MySQL等数据库进行交互。然而,由于中文字符编码的复杂性,在处理数据库中文乱码时常常会出现问题。本文将介绍PHP处理数据库中文乱码的技巧与实践,包括常见的乱码原因、解决方法和具体的代码示例。常见的乱码原因数据库字符集设置不正确:数据库在创建时需选择正确的字符集,如utf8或u

Go WebSocket 如何与数据库集成? Go WebSocket 如何与数据库集成? Jun 05, 2024 pm 03:18 PM

如何将GoWebSocket与数据库集成:设置数据库连接:使用database/sql包连接到数据库。将WebSocket消息存储到数据库:使用INSERT语句将消息插入数据库。从数据库检索WebSocket消息:使用SELECT语句检索数据库中的消息。

See all articles