Según sea la versión de su distribución Linux todos disponen de paquetes de instalación predeterminados disponibles en sus distribuciones actuales. Vamos a centrarnos sólo en la instalación de los paquetes predeterminados. Actualmente los paquetes estarán más actualizados que la versión que pongo de estos paquetes.
Instalación de MySQL
- En la consola shell ejecutamos el siguiente comando:
Antes de instalar alguna aplicación, primero actualice la lista de paquetes disponibles con el comando:
- Una vez instalado el servidor MySQL verificamos que el servidor se esté ejecutando con el comando:
El comando mostrará algo similar a la figura de arriba, indicando el número de proceso asignado y que el servidor se encuentra (ESCUCHANDO).
- En el archivo de configuración del servidor MySQL se crea en el directorio
/etc/mysql/my.cnf
, lo abrimos y lo des-comentamos (si está como un comentario) en la línea que pone:
Si queremos que acepte clientes externos, colocamos la IP asignada por el servidor. Por ejemplo:bind-address = 192.168.90.100
- Reiniciamos el servidor MySQL usando el comando:
NOTA: debemos acordarnos de la contraseña que colocó para el usuario root.
Si todo fue bien y con el incitador mysql>
, el servidor se está ejecutando. En este momento todo el mundo se puede conectar al servidor y puede tener privilegios de administrador, pero esto se tratará en breve.
En dicho incitador escribimos \s
para obtener información complementaria sobre el servidor. Para salir solo tenemos que escribir quit
o \q
Para salir:
Podemos recopilar más información usando el comando
mysql -?
, que nos muestra todavía más información sobre el servidor.
Podemos comprobar el estado del servidor en ejecución mediante el comando
mysqladmin
:
La salida mostrará la confirmación de que el servidor está funcionando y también el número de versión del servidor en cuestión.
Con mysqladmin
también podemos comprobar las opciones de configuración del servidor de ejecución, usando la opción variables
:
Podemos cambiar el password ya que en muchas distros no se configura con un password de root, para establecer el password usamos el comando desde la consola:
Si en cambio ya tenemos un password para root y lo deseamos cambiar la sintaxis es la siguiente:
Este comando establecerá una contraseña inicial de NUEVO-PASSWORD
.
Sin embargo, este método presenta problemas, ya que el texto de contraseña evidente quedará en el historial de su shell, y alguien que usase ps lo pudo haber visto mientras se ejecutaba, o podría recuperarlo del historial de la shell. Por ese motivo, es mejor usar el monitor MySQL, esta vez para enviar SQL, que modificará su contraseña.
Elija, por supuesto una contraseña que sólo conozca usted, y no la del ejemplo que estamos usando de muestra, Si alguna vez deseamos eliminar la contraseña, simplemente tenemos que introducir una cadena vacía en vez de ‘rootatika
‘, y la contraseña desaparecerá.
Ahora vemos la tabla de permisos para comprobar que se ha configurado una contraseña. Cambie primero a la tabla mysql
, con el comando use
, y después solicite las tablas internas.
Observamos que ha creado una contraseña única para conectarse desde el localhost. MySQL puede almacenar distintos privilegios no sólo para usuarios, sino también para clases de conexión basadas en el nombre host. El siguiente paso es asegurar que su instalación se deshará de los usuarios innecesarios que MySQL instaló por defecto. El siguiente comando eliminará todos los usuarios que no sean raíz de la tabla de permisos:
Vemos como el usuario debian-sys-maint
a desaparecido de la tabla.
El siguiente comando elimina cualquier forma de registro distinta de localhost
:
Vemos la eliminación de los registros que eran distintos a localhost y de paso comprobamos que no se perdió ningún registro.
Ahora disponemos de un registro único que se puede conectar desde localhost.
Con nuestra versión funcionando del MySQL y definido para que sólo se conecte a la base de datos del usuario raíz, y con la contraseña que ud., ha definido, y que el usuario raíz puede conectarse únicamente desde un ordenador local. Es posible conectarse a MySQL y proporcionar una contraseña en la línea de comandos.
Podemos crear usuarios con diferentes permisos de conexión desde diferentes ordenadores. En este ejemplo, al usuario raíz se le permite conectarse únicamente desde el ordenador local como medida de seguridad. A lo largo de este capítulo, vamos a crear un nuevo usuario, rick
, con permisos realmente amplios. rick
será capaz de conectarse de tres maneras diferentes:
- Se conectará desde el ordenador local.
- Podrá conectar también desde cualquier ordenador con una dirección IP que vaya desde 192.168.0.0 hasta 192.168.0.255.
- Se podrá conectar desde cualquier ordenador con un dominio wiley.com
El modo más sencillo es creando tres usuarios diferentes con tres orígenes de conexión diferentes. Podrían incluso si lo desearan, tener tres contraseñas diferentes, dependiendo de la dirección de red desde la que se conecten.
Mediante el comando grant puede crear usuarios y asignarles diferentes privilegios. Aquí crearemos el usuario con los orígenes de conexión enumerados. IDENTIFIED BY
es una sintaxis un poco extraña para configurar una contraseña inicial. Tenga en cuenta el uso de las comillas. es importante usar comillas sencillas según veremos en el ejemplo, de lo contrario no creará los usuarios tal como se espera.
Primeramente conéctese a MySQL como usuario raíz y ejecute la siguiente sentencia:
- Cree un registro local para rick:
- Después cree un registro desde cualquier parte de la clase de red secundaria IP (192.168.0) tenga en cuenta que debe usar comillas sencillas para proteger el rango IP, y use una máscara /255.255.255.0 para identificar el rango de direcciones IP que se permiten:
- Por último, cree un registro de manera que rick se puede registrar desde cualquier ordenador con el dominio wiley.com (no olvide las comillas sencillas).
- Ahora vemos la tabla del usuario tal y como quedó para comprobar las entradas:
Ahora que tiene MySQL en ejecución, y que ya dispone de una instalación segura, y que ha creado un usuario que no es raíz para podremos hacer un rápido tour por los principios esenciales de la administración de una base de datos MySQL.