Tenemos un equipo con Linux y queremos instalar un servidor de base de datos para poder acceder a base de datos para alguna aplicación web o de escritorio.
Una vez que lo instalamos, queremos acceder al mismo como 'root' para poder crear usuarios, bases de datos, etc. y al hacerlo desde la ventana de 'login' de 'phpmyadmin' nos dice que no tenemos acceso (aunque podemos acceder también con un usuario 'phpmyadmin' y la contraseña de administrador).
Para poder entrar como root, desde una consola como usuario root del sistema, accedemos por comandos al servidor Mysql:
1 | mysql -hlocalhost -uroot -ppassword |
Una vez que tenemos acceso mediante consola al servidor, podemos revisar todas las cuentas que ya están dadas de alta en la base de datos.
SELECT User,Host FROM mysql.user;
+------------------+-----------+
| User | Host |
+------------------+-----------+
| mysql.sys | localhost |
| root | localhost |
Lo siguiente es borrar el usuario root
> DROP USER 'root'@'localhost'; Query OK, 0 rows affected (0,00 sec)
Ahora creamos de nuevo el usuario 'root 'con la password que quereamos
> CREATE USER 'root'@'%' IDENTIFIED BY 'password'; Query OK, 0 rows affected (0,00 sec)
Una vez que creamos el usuario, debemos dar los permisos correspondientes al nuevo usuario.
> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; Query OK, 0 rows affected (0,00 sec)
Y finalmente debemos hacer un flush para que nos coja automáticamente los cambios.
> FLUSH PRIVILEGES; Query OK, 0 rows affected (0,01 sec)
Después de ello intentamos iniciar sesión de nuevo, desde phpmyadmin y ya deberíamos poder acceder sin problema.