찾다
데이터 베이스MySQL 튜토리얼MySQL数据库集群配置_MySQL

Mysql集群

bitsCN.com

转:http://server.ccw.com.cn/yyjq/htm2010/20100624_870385.shtml 
收藏,备用。

此文章主要向大家讲述的是对MySQL数据库集群进行正确配置的实际操作步骤,以及对其概念的讲述,如果你对其相关的实际操作有兴趣了解的话,以下的文章将会给你提供相关的知识。   
一、介绍 
这篇文档旨在介绍如何安装配置基于2台服务器的MySQL数据库集群。并且实现任意一台服务器出现问题或宕机时MySQL依然能够继续运行。 
注意! 
虽然这是基于2台服务器的MySQL集群,但也必须有额外的第三台服务器作为管理节点,但这台服务器可以在集群启动完成后关闭。同时需要注意的是 并不推荐在集群启动完成后关闭作为管理节点的服务器。尽管理论上可以建立基于只有2台服务器的MySQL集群,但是这样的架构,一旦一台服务器宕机之后集 群就无法继续正常工作了,这样也就失去了集群的意义了。出于这个原因,就需要有第三台服务器作为管理节点运行。 
另外,可能很多朋友都没有3台服务器的实际环境,可以考虑在VMWare或其他虚拟机中进行实验。 
下面假设这3台服务的情况: 
Server1: mysql1.vmtest.net 192.168.0.1    
Server2: mysql2.vmtest.net 192.168.0.2    
Server3: mysql3.vmtest.net 192.168.0.3   
Servers1和Server2作为实际配MySQL数据库集群的服务器。对于作为管理节点的Server3则要求较低,只需对Server3的系 统进行很小的调整并且无需安装MySQL,Server3可以使用一台配置较低的计算机并且可以在Server3同时运行其他服务。 

二、在Server1和Server2上安装MySQL 
注意:必须是max版本的MySQL,Standard版本不支持集群部署! 
以下步骤需要在Server1和Server2上各做一次 

 1 # mv mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz /usr/local/     2 # cd /usr/local/     3 # groupadd mysql     4 # useradd -g mysql mysql     5 # tar -zxvf mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz     6 # rm -f mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz     7 # mv mysql-max-4.1.9-pc-linux-gnu-i686 mysql     8 # cd mysql     9 # scripts/mysql_install_db --user=mysql    10 # chown -R root .    11 # chown -R mysql data    12 # chgrp -R mysql .    13 # cp support-files/mysql.server /etc/rc.d/init.d/mysqld    14 # chmod +x /etc/rc.d/init.d/mysqld    15 # chkconfig --add mysqld  

此时不要启动MySQL! 


三、安装并配置管理节点服务器(Server3) 
作为管理节点服务器,Server3需要ndb_mgm和ndb_mgmd两个文件: 
从http://www.mysql.com上下载mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz 

 1 # mkdir /usr/src/mysql-mgm     2 # cd /usr/src/mysql-mgm     3 # tar -zxvf mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz     4 # rm mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz     5 # cd mysql-max-4.1.9-pc-linux-gnu-i686     6 # mv bin/ndb_mgm .     7 # mv bin/ndb_mgmd .     8 # chmod +x ndb_mg*     9 # mv ndb_mg* /usr/bin/    10 # cd    # rm -rf /usr/src/mysql-mgm  

在开始为这台管理节点服务器建立配置文件: 

1 # mkdir /var/lib/mysql-cluster    2 # cd /var/lib/mysql-cluster    3 # vi config.ini 

在config.ini中添加如下内容: 

[NDBD DEFAULT] NoOfReplicas=2   [MYSQLD DEFAULT]   [NDB_MGMD DEFAULT]   [TCP DEFAULT]    # Managment Server   [NDB_MGMD]     HostName=192.168.0.3 #管理节点服务器Server3的IP地址 # Storage Engines   [NDBD]   HostName=192.168.0.1 #MySQL数据库集群Server1的IP地址    DataDir= /var/lib/mysql-cluster   [NDBD]   HostName=192.168.0.2 #MySQL数据库集群Server2的IP地址    DataDir=/var/lib/mysql-cluster      

 

以下2个[MYSQLD]可以填写Server1和Server2的主机名。 
但为了能够更快的更换集群中的服务器,推荐留空,否则更换服务器后必须对这个配置进行更改。 

[MYSQLD]   [MYSQLD]  

保存退出后,启动管理节点服务器Server3: 

# ndb_mgmd      
启动管理节点后应该注意,这只是管理节点服务,并不是管理终端。因而你看不到任何关于启动后的输出信息。 

四、配置集群服务器并启动MySQL 
在Server1和Server2中都需要进行如下改动: 

 1 # vi /etc/my.cnf    2  3 [mysqld]    4  5 ndbcluster    6  7 ndb-connectstring=192.168.0.3 #Server3的IP地址     8 [mysql_cluster]    9 10 ndb-connectstring=192.168.0.3 #Server3的IP地址 

保存退出后,建立数据目录并启动MySQL: 

1 # mkdir /var/lib/mysql-cluster    2 # cd /var/lib/mysql-cluster    3 # /usr/local/mysql/bin/ndbd --initial    4 # /etc/rc.d/init.d/mysqld start  

可以把/usr/local/mysql/bin/ndbd加到/etc/rc.local中实现开机启动。 
注意:只有在第一次启动ndbd时或者对Server3的config.ini进行改动后才需要使用--initial参数! 

五、检查工作状态 
回到管理节点服务器Server3上,并启动管理终端: 
# /usr/bin/ndb_mgm     键入show命令查看当前工作状态:(下面是一个状态输出示例) 
[root@mysql3 root]# /usr/bin/ndb_mgm    -- NDB Cluster -- Management Client --    ndb_mgm> show    Connected to Management Server at: localhost:1186    Cluster Configuration    [ndbd(NDB)] 2 node(s)    id=2 @192.168.0.1 (Version: 4.1.9, Nodegroup: 0, Master)    id=3 @192.168.0.2 (Version: 4.1.9, Nodegroup: 0)    [ndb_mgmd(MGM)] 1 node(s)    id=1 @192.168.0.3 (Version: 4.1.9)    [mysqld(API)] 2 node(s)    id=4 (Version: 4.1.9)    id=5 (Version: 4.1.9)    ndb_mgm> 
如果上面没有问题,现在开始测试MySQL: 
注意,这篇文档对于MySQL并没有设置root密码,推荐你自己设置Server1和Server2的MySQL root密码。 
在Server1中: 
# /usr/local/mysql/bin/mysql -u root -p    > use test;    > CREATE TABLE ctest (i INT) ENGINE=NDBCLUSTER;    > INSERT INTO ctest () VALUES (1);    > SELECT * FROM ctest;     应该可以看到1 row returned信息(返回数值1)。 
如果上述正常,则换到Server2上重复上面的测试,观察效果。如果成功,则在Server2中执行INSERT再换回到Server1观察是否工作正常。 
如果都没有问题,那么恭喜成功! 

六、破坏性测试 
将Server1或Server2的网线拔掉,观察另外一台MySQL数据库集群服务器工作是否正常(可以使用SELECT查询测试)。测试完毕后,重新插入网线即可。 
如果你接触不到物理服务器,也就是说不能拔掉网线,那也可以这样测试: 
在Server1或Server2上: 
# ps aux | grep ndbd     将会看到所有ndbd进程信息: 
root 5578 0.0 0.3 6220 1964 ? S 03:14 0:00 ndbd    
root 5579 0.0 20.4 492072 102828 ? R 03:14 0:04 ndbd    
root 23532 0.0 0.1 3680 684 pts/1 S 07:59 0:00 grep ndbd      
然后杀掉一个ndbd进程以达到破坏MySQL集群服务器的目的: 
# kill -9 5578 5579      
之后在另一台集群服务器上使用SELECT查询测试。并且在管理节点服务器的管理终端中执行show命令会看到被破坏的那台服务器的状态。 
测试完成后,只需要重新启动被破坏服务器的ndbd进程即可: 
# ndbd     注意!前面说过了,此时是不用加--inital参数的! 
至此,MySQL数据库集群就配置完成了!

bitsCN.com
성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
深入理解MySQL索引优化器工作原理深入理解MySQL索引优化器工作原理Nov 09, 2022 pm 02:05 PM

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于索引优化器工作原理的相关内容,其中包括了MySQL Server的组成,MySQL优化器选择索引额原理以及SQL成本分析,最后通过 select 查询总结整个查询过程,下面一起来看一下,希望对大家有帮助。

sybase是什么数据库sybase是什么数据库Sep 22, 2021 am 11:39 AM

sybase是基于客户/服务器体系结构的数据库,是一个开放的、高性能的、可编程的数据库,可使用事件驱动的触发器、多线索化等来提高性能。

visual foxpro数据库文件是什么visual foxpro数据库文件是什么Jul 23, 2021 pm 04:53 PM

visual foxpro数据库文件是管理数据库对象的系统文件。在VFP中,用户数据是存放在“.DBF”表文件中;VFP的数据库文件(“.DBC”)中不存放用户数据,它只起将属于某一数据库的 数据库表与视图、连接、存储过程等关联起来的作用。

数据库系统的构成包括哪些数据库系统的构成包括哪些Jul 15, 2022 am 11:58 AM

数据库系统由4个部分构成:1、数据库,是指长期存储在计算机内的,有组织,可共享的数据的集合;2、硬件,是指构成计算机系统的各种物理设备,包括存储所需的外部设备;3、软件,包括操作系统、数据库管理系统及应用程序;4、人员,包括系统分析员和数据库设计人员、应用程序员(负责编写使用数据库的应用程序)、最终用户(利用接口或查询语言访问数据库)、数据库管理员(负责数据库的总体信息控制)。

microsoft sql server是什么软件microsoft sql server是什么软件Feb 28, 2023 pm 03:00 PM

microsoft sql server是Microsoft公司推出的关系型数据库管理系统,是一个全面的数据库平台,使用集成的商业智能(BI)工具提供了企业级的数据管理,具有使用方便可伸缩性好与相关软件集成程度高等优点。SQL Server数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使用户可以构建和管理用于业务的高可用和高性能的数据应用程序。

access数据库的结构层次是什么access数据库的结构层次是什么Aug 26, 2022 pm 04:45 PM

结构层次是“数据库→数据表→记录→字段”;字段构成记录,记录构成数据表,数据表构成了数据库。数据库是一个完整的数据的记录的整体,一个数据库包含0到N个表,一个表包含0到N个字段,记录是表中的行。

go语言可以写数据库么go语言可以写数据库么Jan 06, 2023 am 10:35 AM

go语言可以写数据库。Go语言和其他语言不同的地方是,Go官方没有提供数据库驱动,而是编写了开发数据库驱动的标准接口,开发者可以根据定义的接口来开发相应的数据库驱动;这样做的好处在于,只要是按照标准接口开发的代码,以后迁移数据库时,不需要做任何修改,极大方便了后期的架构调整。

mysql查询慢的因素除了索引,还有什么?mysql查询慢的因素除了索引,还有什么?Jul 19, 2022 pm 08:22 PM

mysql查询为什么会慢,关于这个问题,在实际开发经常会遇到,而面试中,也是个高频题。遇到这种问题,我们一般也会想到是因为索引。那除开索引之外,还有哪些因素会导致数据库查询变慢呢?

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.