domingo, 22 de agosto de 2010

Instalando Mysql 5 sobre CentOS 5.4

Como están, esta vez instalaremos el Gestor de base de datos MySQL 5 sobre la el SO. CentOS 5.4, y realizaremos la configuración para conectarnos desde los clientes.
Para comenzar debemos tener instalado el SO. CentOS, en la instalación pueden elegir instalar por defecto una versión de MySQL, pero si quieren una mas actualizada pueden descargarla de la página web de MySQL, de la siguiente direccion http://www.mysql.com/downloads/mysql/#downloads

 

Lógicamente debes estar registrado en la página de MySQL para poder descargar el fichero, el registro es sencillo.


Luego lo ejecutamos en el servidor de la siguiente manera:


 Una vez instalado procederemos a indicarle al servicio que se ejecute al iniciar el SO, con el siguiente comando.

[root@localhost home]# /sbin/chkconfig mysqld on

Luego procederemos a levantar el servicio.

[root@localhost home]# service mysqld start

Si escribimos mysql en la línea de comandos nos conectaremos a la base de datos, porque el usuario root no tiene un password creado, entonces lo que sigue es asignarle un password al usuario root de Mysql. Para esto usarmos mysqladmin.

[root@localhost home]# /usr/bin/mysqladmin -u root password '123456'


En este caso le puse del 1 al 6, como ejemplo. Y luego si tecleamos mysql obtendremos.


[root@localhost home]# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)


Lógicamente porque el usuario por defecto root ya tiene asignado un password, ahora nos conectaremos de la siguiente manera:


[root@localhost home]# mysql -u root -p
Enter password:  



Ingresamos el password anterior y nos conectaremos a MySQL.


Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 27
Server version: 5.0.77 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>  



Para ver los usuarios y las ubicaciones desde las que mysql aceptara las conexiones debemos listarlos de la tabla user, pero antes debemos conectarnos a la bd mysql.

mysql> use mysql;
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> select host, user, password from user;

+-----------------------+------+------------------+
| host                  | user | password         |
+-----------------------+------+------------------+
| localhost             | root | 33cf3f7a4d06abc8 |
| localhost.localdomain | root | 33cf3f7a4d06abc8 |
| 127.0.0.1             | root | 33cf3f7a4d06abc8 |
| localhost             |      |                  |
| localhost.localdomain |      |                  |
| %                     | sa   | 33cf3f7a4d06abc8 |
| localhost             | sa   | 33cf3f7a4d06abc8 |
+-----------------------+------+------------------+
7 rows in set (0.00 sec)



Si queremos crear otro supersusuario, por ejemplo uno llamado aep con todos los privilegios sobre cualquier base de datos (ALL PRIVILEGES ON *.*) y que pueda conectar desde cualquier sitio (TO aep@"%")

mysql> GRANT ALL PRIVILEGES ON *.* TO aep@"%" IDENTIFIED BY '123456' WITH GRANT OPTION;
        
Si ahora queremos borrar un usuario, por ejemplo a nuestro aep y sabiendo que los usuarios se guardan en la tabla llamada user, haremos:

      mysql> use mysql;
      mysql> DELETE FROM user WHERE user = 'aep';
Y aep será borrado de nuestro sistema MySQL.

Los puertos
MySQL utiliza el puerto 3306 por defecto, así que lo debemos agregar dentro de la lista permisible de conexiónes para CentOS.
Para esto debemos ingresar por línea de comandos lo siguiente: system-config-securitylevel

 Y finalmente podremos conectarnos desde nuestro cliente, utilizando MySQL Query Browser por ejemplo.