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.