Explicación paso a paso de como crear un Super Usuario en MariaDB 10> en distribuciones Debian 8> con paneles Plesk Obsidian 18>
Por razones de seguridad en servidores Plesk Obsidian de Linux, la clave de admin de MySQL es encriptada y grabada en un fichero llamado .psa.shadow. Si lo buscamos estará ubicado en el directorio /etc/psa/
1 2 |
# find / -name .psa.shadow /etc/psa/.psa.shadow |
Usando esta clave encriptada podemos conectar a MySQL a través de SSH (shell)
1 2 3 4 5 6 7 8 9 10 |
# mysql -uadmin -p` cat /etc/psa/.psa.shadow` Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 3620 Server version: 10.0.38-MariaDB-0+deb8u1 (Debian) Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> |
Una vez hemos accedido, empezamos creando el nuevo usuario. Queremos que este nuevo usuario tenga acceso (local) a todas las bases de datos. Para ello haremos uso del comando CREATE USER:
1 2 |
MariaDB [(none)]> CREATE USER 'usuario'@'localhost' IDENTIFIED BY 'tuclave'; Query OK, 0 rows affected (0.00 sec) |
Bien, hemos creado el usuario, pero este aún no tiene permisos para realizar operaciones por lo que necesitamos asignarle privilegios de Super Administrador. Para esta operación usaremos el comando GRANT ALL PRIVILEGES que le otorga privilegios para acceder a cualquier base de datos creada en MariaDB:
1 2 |
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'usuario'@'localhost' WITH GRANT OPTION; Query OK, 0 rows affected (0.00 sec) |
Si necesitamos conectar remotamente a MariaDB tendremos que crear otro usuario usando el comodín (wilcard) ‘%‘. Para ello volveremos a realizar los dos pasos anteriores
1 2 3 4 5 |
MariaDB [(none)]> CREATE USER 'usuario'@'%' IDENTIFIED BY 'tuclave'; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'usuario'@'%' WITH GRANT OPTION; Query OK, 0 rows affected (0.00 sec) |
Tanto usuario@’localhost’ como usuario@’%’ son Super Usuarios, pero uno tendrá acceso local y otro remoto.
Por último comprobmos que tiene los privilegios asignados correctamente:
1 2 3 4 5 6 7 |
MariaDB [(none)]> SHOW GRANTS FOR usuario; +----------------------------------------------------------------------------------------------------------------------------------+ | Grants for usuario@% | +----------------------------------------------------------------------------------------------------------------------------------+ | GRANT ALL PRIVILEGES ON *.* TO 'usuario'@'%' IDENTIFIED BY PASSWORD '*AXXXXXXXXXXXXXXXXXXXXXXX' WITH GRANT OPTION | +----------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec) |
Como hemos usado el comando GRANT necesitamos recargar los privilegios de la memoria.
1 2 3 4 |
MariaDB [(none)]> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.01 sec) MariaDB [(none)]> exit |
Comprobamos que podemos conectarnos localmente con el usuario que acabamos de crear:
1 2 |
$ mysql -u tuusuario -p Enter password: |
Permitir Conexiones Remotas
Un último paso que vamos a realizar es localizar el fichero my.cnf que en Debian está ubicado en el directorio /etc/mysql/. Lo editamos y buscamos la opción bind-address en el grupo [mysqld] y la cambiamos por la que indico a continuación.
1 2 3 4 |
# nano /etc/mysql/my.cnf [mysqld] # bind-address = ::ffff:127.0.0.1 bind-address = ::ffff:0.0.0.0 |
Reiniciamos el servicio MySQL y comprobamos que podemos conectar remotamente.
1 |
# service mysql restart |