Nada como una tarde de domingo para compilar una base de datos. Tras la compra de Sun por parte de Oracle, las reacciones no se han hecho esperar. Por ejemplo ya se ha anunciado la creacion de la Open Database Alliance, una iniciativa de Michael Widenius, el creador original de MySQL para crear un consorcio neutral que se convierta en el centro de la base de datos de codigo abierto MySQL. Yo sin embargo estos dias estuve interesado en MariaDB. MariaDB es precisamente una rama de desarrollo de MySQL 5.1 que Michael Widenius creo cuando abandono Sun para formar su propia empresa Monty Program AB. Tal y como cuenta Repaweb MariaDb trabaja como MySQL con las mismas interfaces y comandos pero se diferencia en que esta version trae las fuentes del codigo y de los ejecutables, y es mas rapida al hacer consultas complejas pues utiliza la memoria cache para almacenar las filas de la tabla en lugar de acceder al disco como MyISAM.
Bien vamos al tema. Para instalarla yo me descargue el paquete .tar.gz con el codigo fuente desde LaunchPad. Descomprimo, accedo al directorio generado y ejecuto los pasos tipicos de compilacion:
./configure
make
sudo make install
Cabe decir, que si no quieres compilar el tarball existen unos binarios precompilados e instrucciones en el siguiente enlace. Importante o no, en mi caso no tenia ninguna otra instancia de MySQL instalada en la maquina, asi evite conflictos.
Ahora instalo las tablas del sistema ejecutando el comando:
mysql_install_db --user=mysql --basedir=/usr/local
root@soledad:/usr/local# mysql_install_db --user=mysql --basedir=/usr/local
Installing MySQL system tables...
OK
Filling help tables...
OK
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/local/bin/mysqladmin -u root password 'new-password'
/usr/local/bin/mysqladmin -u root -h soledad password 'new-password'
Alternatively you can run:
/usr/local/bin/mysql_secure_installation
which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.
See the manual for more instructions.
You can start the MySQL daemon with:
cd /usr/local ; /usr/local/bin/mysqld_safe &
You can test the MySQL daemon with mysql-test-run.pl
cd /usr/local/mysql-test ; perl mysql-test-run.pl
Please report any problems with the /usr/local/scripts/mysqlbug script!
The latest information about MySQL is available at http://www.mysql.com/
Support MySQL by buying support/licenses from http://shop.mysql.com/
Importante indicar con «basedir» el directorio base donde se instala MariaDb o te dara un error de que no encuentra mysqld y similares.
Vamos a intentar arrancar la base de datos, para ello ejecutamos:
/usr/local/bin/mysqld_safe --language=/usr/local/share/mysql/english &
Tuve que indicarle la ruta de los mensajes con el parametro «language» porque en otro caso me mostraba el error:
Can’t find messagefile ‘/usr/share/mysql/english/errmsg.sys’
Otra cosa, si al arrancar te da el siguiente error:
090313 13:54:41 [ERROR] /usr/local/mysql/libexec/mysqld: unknown option '--skip-federated'
090313 13:54:41 [ERROR] Aborting
Tienes que ir previamente a tu fichero my.cnf y comentar la linea que tiene el texto «skip-federated». El fichero my.cnf yo lo tenia en /etc/mysql. Tras esto, vuelves a intentar arrancar y ya deberias iniciarse sin problemas:
jose@soledad:~$ ps -ef | grep mysql
root 11942 1 0 10:09 pts/2 00:00:00 gedit /etc/mysql/my.cnf
root 12458 11754 0 10:17 pts/2 00:00:00 /bin/sh /usr/local/bin/mysqld_safe --language=/usr/local/share/mysql/english
mysql 12576 12458 0 10:17 pts/2 00:00:00 /usr/local/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --language=/usr/local/share/mysql/english --log-error=/var/lib/mysql/soledad.err --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306
jose 12608 12580 0 10:17 pts/3 00:00:00 grep mysql
Bien ahora creamos un usuario y password correspondiente:
/usr/local/bin/mysqladmin -u root password 'aqui_la_password_que_quieras'
De esta forma puedo entrar como usuario «root» y la password «que hayas puesto». Para ello como el usuario correspondiente desde la consola (en este caso el usuario root) ejecuto el comando: mysql -p base_de_datos. La base de datos por defecto se llama mysql. Luego ya podriamos crear nuevas bases de datos con «create database».
root@soledad:~# mysql -p mysql
Enter password:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.1.32-maria-beta Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> show tables;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db |
| event |
| func |
| general_log |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| host |
| ndb_binlog_index |
| plugin |
| proc |
| procs_priv |
| servers |
| slow_log |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
+---------------------------+
23 rows in set (0,00 sec)
mysql> select Host, User from user;
+-----------+------+
| Host | User |
+-----------+------+
| 127.0.0.1 | root |
| localhost | |
| localhost | root |
| soledad | |
| soledad | root |
+-----------+------+
5 rows in set (0,00 sec)
La ire probando a ver que tal tira, aunque no deberia dar problemas, basicamente es un fork (aunque a Michael no le guste llamarla asi) de MySQL. Por cierto los clientes graficos siguen conectando muy bien, como podeis ver aqui.
Uola. Acabo de llegar a tu blog y me parece bastante práctico, a ver si cojo algunos consejillos y os aplico. Felicidades por el blog 😉
Hola Balthor. Muchas gracias.
Aunque a lo peor te arrepientes. Cuando te enganchas a esto ya no paras ^^
Mas que preocupado, como que un poco tristes estábamos pero buena la información, pues abra que crear mas y mas blogs sobre esta nuevas bases de datos. Felicidades por tu aporte a la comunidad. Gracias.
oracle compro sun mysql morira para dar paso a oracle express edition adios mysql QDEP
MySQL QEPD. ¡Pero nació una nueva opción! Grande Michael Widenius. El software libre no puede ya frenado, aunque Microsoft y Oracle posean millones. Es una ardua tarea instalar MariaDB… espero que lo logre con éxito.