当前位置:首页 > 系统运维 > 正文内容

MySQL集群在Ubuntu 9.0上的配置 ***

a8116255316年前 (2010-08-12)系统运维11

大家在网上都能找到都是RedHat系统等等,对Ubuntu系统MySQL集群就没有介绍文章

我现在写写Ubuntu这个MySQL集群 *** 。新手不要骂我,呵呵。

介绍 *** 环境:

测试环境:

Server1: ndbd 192.168.245.11  Server2: ndbd 192.168.245.12  Server3: mysqld –ndb-cluster 192.168.245.13 

ndbd: 数据库节点。

mysqld –ndb-cluster: MySQL服务器节点,程序直接访问的是这台机器的IP。默认端口仍是3306。

ndbd_mgm ndbd_mgmd:管理节点。管理/查看各库节点和服务器节点的状态。

二、集群方案

1.管理节点:server3(192.168.245.13)

2.存储节点:server1(192.168.245.11),server2(192.168.245.12)

3.SQL节点:server1(192.168.245.11),server2(192.168.245.12),server3(192.168.245.13)

三、mysql安装和配置

1.安装,sudo apt-get install mysql-server

2.配置这三台服务器上配置my.cnf,这三台服务器都要配置

vim /etc/mysql/my.cnf  —————————————–my.cnf开始——————————————–  Ubuntu@ubuntu:~$ cat /etc/mysql/my.cnf  #  # The MySQL database server configuration file.  #  # You can copy this to one of:  # - “/etc/mysql/my.cnf” to set global options,  # - “~/.my.cnf” to set user-specific options.  #  # One can use all long options that the program supports.  # Run program with –help to get a list of avAIlable options and with  # –print-defaults to see which it would actually understand and use.  #  # For explanations see  # http://dev.mysql.com/doc/mysql/en/serve ... ables.html   # This will be passed to all mysql clients  # It has been reported that passwords should be enclosed with ticks/quotes  # escpecially if they contain “#” chars…  # Remember to edit /etc/mysql/debian.cnf when changing the socket location.  [client]  port = 3306 socket = /var/run/mysqld/mysqld.sock   # Here is entries for some specific programs  # The following values assume you have at least 32M ram   # This was formally known as [safe_mysqld]. Both versions are currently parsed.  [mysqld_safe]  socket = /var/run/mysqld/mysqld.sock  nice = 0  [mysqld]  #  # * Basic Settings  #   #  # * IMPORTANT  # If you make changes to these settings and your system uses apparmor, you may  # also need to also adjust /etc/apparmor.d/usr. *** in.mysqld.  #   user = mysql pid-file = /var/run/mysqld/mysqld.pid  socket = /var/run/mysqld/mysqld.sock  port = 3306 basedir = /usr  datadir = /var/lib/mysql  tmpdir = /tmp  language = /usr/share/mysql/english  skip-external-locking  #  # Instead of skip-networking the default is now to listen only on  # localhost which is more compatible and is not less secure.  bind-address = 127.0.0.1  #  # * Fine Tuning  #  key_buffer = 16M max_allowed_packet = 16M thread_stack = 128K thread_cache_size = 8 #max_connections = 100 #table_cache = 64 #thread_concurrency = 10 #  # * Query Cache Configuration  #  query_cache_limit = 1M query_cache_size = 16M #  # * Logging and Replication  #  # Both location gets rotated by the cronjob.  # Be aware that this log type is a performance killer.  #log = /var/log/mysql/mysql.log  #  # Error logging goes to syslog. This is a Debian improvement   #  # Here you can see queries with especially long duration  #log_slow_queries = /var/log/mysql/mysql-slow.log  #long_query_time = 2 #log-queries-not-using-indexes  #  # The following can be used as easy to replay backup logs or for replication.  # note: if you are setting up a replication slave, see README.Debian about  # other settings you may need to change.  #server-id = 1 #log_bin = /var/log/mysql/mysql-bin.log  expire_logs_days = 10 max_binlog_size = 100M #binlog_do_db = include_database_name #binlog_ignore_db = include_database_name #  # * BerkeleyDB  #  # Using BerkeleyDB is now discouraged as its support will cease in 5.1.12.  skip-bdb  #  # * MyISAM  #  # MyISAM is enabled by default with a 10MB datafile in /var/lib/mysql/.  # Read the manual for more MyISAM related options. There are many!  # You might want to disable MyISAM to shrink the mysqld process by circa 100MB.  #skip-innodb  #  # * Security Features  #  # Read the manual, too, if you want chroot!  chroot = /var/lib/mysql/  #  # For generating SSL certificates I recommend the OpenSSL GUI “tinyca”.  #  ssl-ca=/etc/mysql/cacert.pem  ssl-cert=/etc/mysql/server-cert.pem  ssl-key=/etc/mysql/server-key.pem   ndbcluster  ndb-connectstring=192.168.245.13   [mysqldump]  quick  quote-names  max_allowed_packet = 16M  [mysql]  #no-auto-rehash # faster start of mysql but no tab completition   [isamchk]  key_buffer = 16M  #  # * NDB Cluster  #  # See /usr/share/doc/mysql-server-*/README.Debian for more information.  #  # The following configuration is read by the NDB Data Nodes (ndbd processes)   # not from the NDB Management Nodes (ndb_mgmd processes).  #  [MYSQL_CLUSTER]   ndb-connectstring=192.168.245.13   #  # * IMPORTANT: Additional settings that can override those from this file!  # The files must end with ‘.cnf’, otherwise they’ll be ignored.  #  !includedir /etc/mysql/conf.d/   Ubuntu@ubuntu:~$  ———————————my.cnf结束——————————————————— 

主要在:[mysqld]下添加:

ndbcluster  ndb-connectstring=192.168.245.13 

和添加

[MYSQL_CLUSTER]  ndb-connectstring=192.168.245.13 

上面三台服务器都要一样

2.配置ndb_mgmd.cnf(192.168.245.13服务器上配置)

复制/usr/share/doc/mysql-server-5.0/examples/ndb_mgmd.cnf到/etc/mysql/ndb_mgmd.cnf

编辑ndb_mgmd.cnf

——————-开始————  Ubuntu@ubuntu:~$ cat /etc/mysql/ndb_mgmd.cnf  [NDBD DEFAULT]  NoOfReplicas=2 DataMemory=10MB IndexMemory=25MB MaxNoOfTables=256 MaxNoOfOrderedIndexes=256 MaxNoOfUniqueHashIndexes=128  [MYSQLD DEFAULT]  [NDB_MGMD DEFAULT]  [TCP DEFAULT]  [NDB_MGMD]  Id=1 # the NDB Management Node (this one)  HostName=192.168.245.13  DataDir= /var/lib/mysql-cluster   [NDBD]  Id=2 # the first NDB Data Node  HostName=192.168.245.11  DataDir= /var/lib/mysql-cluster   [NDBD]  Id=3 # the second NDB Data Node  HostName=192.168.245.12  DataDir=/var/lib/mysql-cluster   [MYSQLD]  Id=4 # the first SQL node  HostName=192.168.245.13  [MYSQLD]  Id=5 # the first SQL node  HostName=192.168.245.11  [MYSQLD]  Id=6 # the first SQL node  HostName=192.168.245.12   Ubuntu@ubuntu:~$   ——————-结束———— 

先启动:

13服务器:

sudo /etc/init.d/mysql-ndb-mgm start 

然后启动

11.12服务器

sudo /etc/init.d/mysql-ndb start 

最后启动,13.11.12服务器mysql服务

sudo /etc/init.d/mysql start 

测试:

13服务器上:

neo@mgm:~$ 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.245.11 (Version: 5.0.51, Nodegroup: 0)  id=3 @192.168.245.12 (Version: 5.0.51, Nodegroup: 0, Master)   [ndb_mgmd(MGM)] 1 node(s)  id=1 @192.168.245.13 (Version: 5.0.51)   [mysqld(API)] 2 node(s)  id=4 @192.168.245.13 (Version: 5.0.51)  id=5 @192.168.245.11 (Version: 5.0.51)  id=5 @192.168.245.12 (Version: 5.0.51)   ndb_mgm> 

与没有使用簇的MySQL相比,在MySQL簇内操作数据的方式没有太大的区别。

执行这类操作时应记住三点

1.表必须用ENGINE=NDB或ENGINE=NDBCLUSTER选项创建,或用ALTER TABLE选项更改,以使用NDB Cluster存储引擎在 Cluster内复制它们。如果使用mysqldump的输出从已有数据库导入表,可在文本编辑器中打开SQL脚本,并将该选项添加到任何表创建语句,或用这类选项之一替换任何已有的ENGINE(或TYPE)选项。

2.另外还请记住,每个NDB表必须有一个主键。如果在创建表时用户未定义主键,NDB Cluster存储引擎将自动生成隐含的主键。(注释:该隐含 键也将占用空间,就像任何其他的表索引一样。由于没有足够的内存来容纳这些自动创建的键,出现问题并不罕见)。

3.当你在一个节点上运行create database mydb;你去其他sql node上执行show databases;将不能看到mydb,你需要创建它,然后use mydb; show tables;你将看到同步的表。

SQL Node 1  neo@sql:~$ mysql -uroot -p  Enter password:  Welcome to the MySQL monitor. Commands end with ; or g.  Your MySQL connection id is 7  Server version: 5.0.51a-3Ubuntu5.1 (Ubuntu)   Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the buffer.   mysql> create database cluster;  Query OK, 1 row affected (0.00 sec)   mysql> use cluster  Database changed  mysql> create table city( id mediumint unsigned not null auto_increment primary key, name varchar(20) not null default ” ) engine = ndbcluster default   charset utf8;  Query OK, 0 rows affected (1.07 sec)   mysql> insert into city values(1, ‘Shenzhen’);  Query OK, 1 row affected (0.12 sec)   mysql> insert into city values(2, ‘Guangdong’);  Query OK, 1 row affected (0.00 sec)   SQL Node 2   neo@sql:~$ mysql -uroot -p  Enter password:  Welcome to the MySQL monitor. Commands end with ; or g.  Your MySQL connection id is 7  Server version: 5.0.51a-3Ubuntu5.1 (Ubuntu)   Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the buffer.   mysql> show databases;  ——————–   | Database |  ——————–   | information_schema |  | example |  | mydb |  | mysql |  | neo |  ——————–   6 rows in set (0.13 sec)   mysql> create database cluster;  Query OK, 1 row affected (0.00 sec)   mysql> show databases;  ——————–   | Database |  ——————–   | information_schema |  | cluster |  | example |  | mydb |  | mysql |  | neo |  ——————–   6 rows in set (0.13 sec)   mysql> use cluster;  Reading table information for completion of table and column names  You can turn off this feature to get a quicker startup with -A   Database changed  mysql> show tables;  ——————-   | Tables_in_cluster |  ——————-   | city |  ——————-   1 row in set (0.01 sec)   mysql> select * from city;  —- ———–   | id | name |  —- ———–   | 1 | Shenzhen |  | 2 | Guangdong |  —- ———–   2 rows in set (0.03 sec)   mysql> 

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://www.2345hao.cn/blog/index.php/post/22299.html

分享给朋友:

“MySQL集群在Ubuntu 9.0上的配置 *** ” 的相关文章

windows 7系统如何设置休眠时不断网以便继续完成下载

windows 7系统如何设置休眠时不断网以便继续完成下载

在Windows 7系统的默认设置中,当Windows 7系统处于休眠状态时,会同时断网的。如此一来,无论你正在使用迅雷还是快车等下载工具,同样可以在休眠状态下继续完成下载,最大限度做到从身边的小事开始支持环保。下面我们就详细介绍操作步骤,帮助Windows 7系统用户实现这一节能目标。 首先需要...

windows 7查看电脑近期使用情况确定有没有被他人使用

windows 7查看电脑近期使用情况确定有没有被他人使用

我一个朋友最近装装了Windows 7,他总感觉有人用了他的电脑,但是一直不确定,他想知道有没有人动用他的电脑,问我有没有办法 我说设置一下就行了: 启动Windows 7,在搜索栏中输入编辑组,马上就搜索到了编辑组策略,点击即可启动程序编辑组策略。依次展开组策略左侧树形列表的计算机配置/管理模...

windows 7如何给c盘扩容 图解windows 7 64位系统C盘扩容方法(自

windows 7如何给c盘扩容 图解windows 7 64位系统C盘扩容方法(自

用Windows 7久了,C盘越来越大,原来50G的空间基本用完了,又不想重装系统,就想着能不能直接扩容。 在网上搜了半天,看了无数教程,都写得不明不白的,结合了几篇教程才终于搞明白。 重新总结一下,方便有需要的人。 所用软件: http://www.jb51.net/softs/57895...

windows 7旗舰版系统提示应用程序错误代码0xc0000409的故障原因

windows 7旗舰版系统提示应用程序错误代码0xc0000409的故障原因

问题现象,具体如下所示:  故障分析: 一般来说,出现这种情况是因为电脑误删系统文件或者是系统文件被顽固木马破坏。       解决方法: 1、下载360安全卫士,找到里面的急救箱开始急救,然后进行修复,完成后重新启动; 2、下载瑞...

windows 7如何创建拨号连接

windows 7如何创建拨号连接

一、打开控制面板,选择“网络和共享中心”; 二、在网络和共享中心中选择“设置新的连接或网络”; 三、选择连接到Internet; 四、选择“仍要设置新的连接”; 五、选择“宽带PPPoE ”; 六、输入对应的宽带帐号及密码,点击连接即可;...

windows7系统下让所有文件夹都使用同一种视图的方法

windows7系统下让所有文件夹都使用同一种视图的方法

Windows 7系统可以对每个文件夹进行个性化视图设置,可以根据自己的个人喜好和实际需要更改文件或文件夹图标的大小,或者让文件或文件夹以列表、平铺等方式显示。但是,假如你对N个文件夹视图进行了风格各异的个性设置,现在又想让所有文件夹都使用同一种视图怎么办呢 手工一个一个修改,你OUT了,非累得手抽...