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

成都创新互联专业为企业提供广陵网站建设、广陵做网站、广陵网站设计、广陵网站制作等企业网站建设、网页设计与制作、广陵企业网站模板建站服务,10多年广陵做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
我现在写写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.sbin.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>
 
【编辑推荐】
                文章标题:MySQL集群在Ubuntu 9.0上的配置方法
                
                浏览地址:http://www.csdahua.cn/qtweb/news49/273999.html
            
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网