Para familiarizarse con los conceptos básicos, describimos la configuración más sencilla para un MySQL Cluster. Después, debería poder diseñar su inicialización deseada a partir de la información proporcionada en las otras secciones de este capítulo.
Primero, necesita crear un directorio de configuración tal como
/var/lib/mysql-cluster, ejecutando el
siguiente comando como root del sistema:
shell> mkdir /var/lib/mysql-cluster
En este directorio, cree un fichero llamado
config.ini con la siguiente información,
substituyendo los valores apropiados por
HostName y DataDir como
sea necesario para su sistema.
# file "config.ini" - showing minimal setup consisting of 1 data node, # 1 management server, and 3 MySQL servers. # The empty default sections are not required, and are shown only for # the sake of completeness. # Data nodes must provide a hostname but MySQL Servers are not required # to do so. # If you don't know the hostname for your machine, use localhost. # The DataDir parameter also has a default value, but it is recommended to # set it explicitly. # Note: DB, API, and MGM are aliases for NDBD, MYSQLD, and NDB_MGMD # respectively. DB and API are deprecated and should not be used in new # installations. [NDBD DEFAULT] NoOfReplicas= 1 [MYSQLD DEFAULT] [NDB_MGMD DEFAULT] [TCP DEFAULT] [NDB_MGMD] HostName= myhost.example.com [NDBD] HostName= myhost.example.com DataDir= /var/lib/mysql-cluster [MYSQLD] [MYSQLD] [MYSQLD]
Ahora puede arrancar el servidor de administración:
shell> cd /var/lib/mysql-cluster shell> ndb_mgmd
Arranque un nodo DB sencillo usando ndbd. Al
arrancar ndbd para un nodod DB dado por
primera vez, debe usar la opción --initial :
shell> ndbd --initial
Para arrancar ndbd de nuevo,normalmente no necesitará usar esta opción:
shell> ndbd
Esto es porque la opción --initial borra todos
los ficheros de datos y log existentes (así como todos los
metadatos de tablas) para este nodo de datos y crea nuevos. Una
excepción a esta regla es al reiniciar el cluster y restaurar
desde una copia de seguridad tras añadir nuevos nodos de datos.
Por defecto, ndbd buscará el servidor de
administración en localhost en el puerto
1186.
Nota: Si ha instalado MySQL
desde un tarball binario, necesitará especificar la ruta de los
servidores ndb_mgmd y ndbd
explícitamente. (Normalemnte, se encuentran en
/usr/local/mysql/bin.)
Finalmente, vaya al directorio de datos de MySQL (usualmente
/var/lib/mysql o
/usr/local/mysql/data), y asegúrese que el
fichero my.cnf contiene la opción
necesaria para permitir el motor NDB :
[mysqld] ndbcluster
Ahora puede arrancar el servidor MySQL normalmente:
shell> mysqld_safe --user=mysql &
Espere un momento para asegurarse que el servidor MySQL está
corriendo apropiadamente. Si ve mysql ended,
chequee el fichero .err del servidor para
averiguar qué ha fallado.
Si todo ha ido bien, puede arrancar usando el cluster:
shell> mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 5.0.10-Max
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> SHOW ENGINES;
+------------+---------+------------------------------------------------------------+
| Engine | Support | Comment |
+------------+---------+------------------------------------------------------------+
...
| NDBCLUSTER | DEFAULT | Clustered, fault-tolerant, memory-based tables |
| NDB | YES | Alias for NDBCLUSTER |
...
mysql> USE test;
Database changed
mysql> CREATE TABLE ctest (i INT) ENGINE=NDBCLUSTER;
Query OK, 0 rows affected (0.09 sec)
mysql> SHOW CREATE TABLE ctest \G
*************************** 1. row ***************************
Table: ctest
Create Table: CREATE TABLE `ctest` (
`i` int(11) default NULL
) ENGINE=ndbcluster DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
Para chequear que sus nodos se han inicializado correctamente, arranque el cliente de administración como se muestra:
shell> ndb_mgm
Puede usar el comando SHOW desde el cliente de administración para obtener un reporte del estado del cluster:
NDB> SHOW Cluster Configuration --------------------- [ndbd(NDB)] 1 node(s) id=2 @127.0.0.1 (Version: 3.5.3, Nodegroup: 0, Master) [ndb_mgmd(MGM)] 1 node(s) id=1 @127.0.0.1 (Version: 3.5.3) [mysqld(API)] 3 node(s) id=3 @127.0.0.1 (Version: 3.5.3) id=4 (not connected, accepting connect from any host) id=5 (not connected, accepting connect from any host)
En este punto, ha inicializado correctamente un cluster MySQL.
Ya puede almacenar datos en el cluster usando cualquier tabla
creada con ENGINE=NDBCLUSTER o su alias
ENGINE=NDB.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.
