¿En qué podemos ayudarte?

Ya sabemos que phpMyAdmin es una herramienta extremadamente útil para gestionar nuestras bases de datos. En esta pequeña guía veremos un par de recomendaciones para solucionar algunos problemas con phpMyAdmin que podemos encontrar en nuestras instalaciones

Error de acceso a las bases datos

Este error es frecuente en las últimas versiones de mySQL/MariaDB. La seguridad es más estricta y  el usuario root solo puede acceder mediante "sudo". ​

phpMyAdmin ya no puede acceder como root a la base de datos. Lo mismo se aplica a otras aplicaciones, como por ejemplo WordPress.

La solución permanente a este problema con phpMyAdmines muy simple, creamos un nuevo usuario y le otorgamos todos los privilegios

Nos conectamos por SSH al servidor de la base de datos y ejecutamos el comando sudo mysql -u root

Y una vez dentro de la consola de mySQL ejecutamos los comandos:

create user 'usuario'@'localhost' identified by 'contraseña';
grant all privileges on *.* to 'usuario'@'localhost' with grant option;
flush privileges;

Sustituiremos usuario y contraseña por las adecuadas a nuestra instalación. 

Para modificar la contraseña de un usuario existente,los comandos son:

alter user 'usuario'@'localhost' identified by 'nueva-contraseña';
flush privileges;

Sustituiremos localhost  por la dirección autorizada, si fuese necesario.

Errores y avisos de PHP al usar phpMyAdmin

Esta es algo que me ha ocurrido en instalaciones con Ubuntu 18. Aparece el siguiente aviso durante el trabajo con phpMyAdmin

Podemos ignorarlo, el funcionamiento será normal, pero este problema con phpMyAdmin es realmente molesto. Y suele presentarse también al  Exportar o Importar, solo que en este caso habrá otra referencia:
 Warning in ./libraries/plugin_interface.lib.php#551

Este problema con phpMyAdmin se debe a errores de sintaxis en los archivos indicados. Podemos solucionarlo muy fácilmente modificándolos con nuestro editor favorito. 

sql.lib.php

Por seguridad, primero  haremos una copia: 
sudo cp /usr/share/phpmyadmin/libraries/sql.lib.php /usr/share/phpmyadmin/libraries/sql.lib.php.bak

Lo abrimos con nano:
sudo nano /usr/share/phpmyadmin/libraries/sql.lib.php 

En la linea indicada en el mensaje (613 en este caso) veremos lo siguiente: (count($analyzed_sql_results['select_expr'] == 1) 

Que debemos sustituir por: (count($analyzed_sql_results['select_expr'] )== 1)

Guardamos los cambios y cerramos el editor

plugin_interface.lib.php

Hacemos la copia
sudo cp /usr/share/phpmyadmin/libraries/plugin_interface.lib.php /usr/share/phpmyadmin/libraries/plugin_interface.lib.php.bak

Abrimos el archivo​
sudo nano /usr/share/phpmyadmin/libraries/plugin_interface.lib.php

y modificamos la línea 551 cambiando
if (! is_null($options) && count($options) > 0) { (o esta otra variante  if ($options != null && count($options) > 0))

​por if (! is_null($options) && count((array)$options) > 0)

Finalizamos guardando las modificaciones y el error debe haber desaparecido.


Solucionar problemas con phpMyAdmin actualizándolo manualmente

La mayoría de los problemas con phpMyAdmin son consecuencia de errores de programación. Muchos suelen estar solucionados en las nuevas versiones. Encontralos indica que tenemos instalada  una versión antigua. Y suele pasar con los repositorios oficiales de muchas distribuciones.

Por ejemplo Ubuntu 18, instala la versión 4.6 de phpMyAdmin. Por otra parte, la última versión estable es la 4.9 como podemos comporbar en la página de descargas oficial.

Podemos esperar a que se actualice el repositorio oficial o agregar uno alternativo. Sin embargo, es muy fácil hacer una actualización manual, corregir estos errores y aprovechanos de otras mejoras introducidas en la nueva versión

Descarga de los archivos actualizados

Como siempre haremos una copia de la instalación actual. A continuación creamos de nuevola carpeta de phpMyAdmin y nos desplazamos a ella
sudo mv /usr/share/phpmyadmin/ /usr/share/phpmyadmin.bak
sudo mkdir /usr/share/phpmyadmin/
cd /usr/share/phpmyadmin/

Descargamos la  versión estable que necesitamos, la descomprimimos y movemos los archivos a su ubicacion definitiva
sudo wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.tar.gz
sudo tar xzf phpMyAdmin-4.9.0.1-all-languages.tar.gz
sudo mv phpMyAdmin-4.9.0.1-all-languages/* /usr/share/phpmyadmin

Debemos ajustar los nombres a la versión que vamos a instalar.

Configuración de la nueva versión

Si accedemos nuevamente a phpMyAdmin, veremos que la versión ya está actualizada. Aunque, es posible que tengamos que realizar algunos ajustes en la configuración. Lo sabremos si nos aparecen errores como los siguientes:

Para eliminarlos editamos el archivo vendor_config.php
sudo nano /usr/share/phpmyadmin/libraries/vendor_config.php

En la línea 49, encontraremos: define('CONFIG_DIR', '');
y lo cambiaremos por: define('CONFIG_DIR', '/etc/phpmyadmin/');

En la línea 25, encontraremos: define('TEMP_DIR', './tmp/');
y lo cambiaremos por: define('TEMP_DIR', '/var/lib/phpmyadmin/tmp/');

Guardamos las modifcaciones y salimos del editor.

Solo nos queda hacer limpieza y borrar los archivos descargados que no necesitaremos.
sudo rm /usr/share/phpmyadmin/phpMyAdmin-4.9.0.1-all-languages.tar.gz
sudo rm -rf /usr/share/phpmyadmin/phpMyAdmin-4.9.0.1-all-languages

A partir de este momento, comprobaremos que al usar la nueva versión todos los errores hayan desaparecido.

Finalmente, si todo ha ido bien, podemos eliminar la copia inicial
sudo rm -rf /usr/share/phpmyadmin.bak

Actualizar a una nueva versión, casi siempre será la mejor solución a los problemas con phpMyAdmin.


5 1 vote
Valoración del artículo
Suscribir
Notificar de
guest
14 Comentarios
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
Alejandro
Alejandro
3 años atrás

Hola

Horas y horas probando de todo y al final he conseguido eliminar el error 500 al acceder al phpmyadmin problema que se me inicio al actualizar la versión de php, actualizando manualmente como indicas en tu articulo lo he solucionado.

Gracias.

Jaime
Jaime
3 años atrás
Reply to  RJCardenas

Hola.

No puedo conectar mi formulario Html con la base de datos. He creado la base de datos con phpmy admin. Y estoy usando Vs code. Pero cuando lleno el formulario y presiono el submit para enviar los datos no me sale: ‘registro exitoso’. Al contrario me sale un pagina con todo codigo de la pgina php que hice. Pero no vincula el formulario con la base de datos. Cual es mi error. Gracias

Jaime
Jaime
3 años atrás
Reply to  RJCardenas

Hola Ricardo y como puedo cambiar esta etiqueta corta en vscode. Gracias

Jaime
Jaime
3 años atrás
Reply to  RJCardenas

Hola Rolando, he modificado la etiqueta corta en Visual code pero me sigue apareciendo la misma pagina en blanco con el codigo php. He cambiado de puertos, he cambiado de windows 8.1 a windows 10, cambie en phpmyadmin a: running with administrator rights! Es decir hay conexion entre Vscode y las bases de datos que creo. Pero no hay ninguna conexion entre Html form y las bases de datos, cuando relleno para crear un usuario me sale la pagina con el codigo del php. Que puede causar esta falta de conexion entre el Html form y la base de datos?… Read more »

roberto
roberto
3 años atrás

Warning: mysqli::__construct(): (HY000/2002): Connection refused in /volume1/web/WebServer/Old_Sistem/Sistema/include/conn.php on line 10 Unable to connect to database [Connection refused] .
tengo este error, ya revise la dirección ip esta bien, contraseña, usuario y base de datos estan correctos. el erro empezo cuando se actualizo php

<?php
$gaSql[‘user’] = «economia»;
$gaSql[‘password’] = «123456»;
$gaSql[‘db’] = «economias»;
$gaSql[‘server’] = «127.0.0.1»;

$db = new mysqli($gaSql[‘server’],$gaSql[‘user’],$gaSql[‘password’],$gaSql[‘db’]);
if($db->connect_errno > 0){
die(‘Unable to connect to database [‘ . $db->connect_error . ‘]’);
}

$conn=mysqli_connect($gaSql[«server»],$gaSql[«user»],$gaSql[«password»], $gaSql[‘db’]);
?>

roberto
roberto
3 años atrás
Reply to  RJCardenas

ya revise y no se soluciono el problema

roberto
roberto
3 años atrás
Reply to  RJCardenas

me muestra un error en mariadb

Kamil Alejandro
Kamil Alejandro
4 años atrás

Algo si, para sql.lib.php en la linea 614, hay que quitar un paréntesis, si no phpMyAdmin no funcionará.

dario
dario
4 años atrás

pongo root u otros nombres con o sin contraeñas y no me deja entrar al local el php usando mysql