¿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.
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.
Hola Alejandro,
Me alegra haberte ayudado.
Saludos
Rolando
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
Hola Jaime,
Cuando se visualiza el código php en lugar de ejecutarse suele ser porque faltan los tags . Sin ver el código, lo que se me ocurre es que quizás vscode esté utilizando la etiqueta corta y no tengas activada la opción "short_open_tag". Ten en cuenta que en 7.4 ha pasado a ser "deprecated" y se ha eliminado a partir de la 8.0 Saludos Rolando
Hola Ricardo y como puedo cambiar esta etiqueta corta en vscode. Gracias
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 »
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’]);
?>
Hola Roberto, Parece un error de configuración. ¿puedes revisar la configuración del mysql (my.conf) Por defecto mysql solo acepta conexiones desde la máquina local: 127.0.0.1 o localhost. Si conectas desde otro ordenador fallará con ese error. Para conectar desde otro ordenador revisa la opción bind-address, prueba a usar 0.0.0.0 (ipv4) y/o :: (ipv6). También revisa el puerto por si no es el 3306 (tendrás que adaptar el script de conexión). Finalmente comprueba es que tengas activado skip-networking (se hacia así por defecto antes) en ese caso prueba a comentar o eliminar esa línea. Sin ver tu configuración no se me… Read more »
ya revise y no se soluciono el problema
me muestra un error en mariadb
Algo si, para sql.lib.php en la linea 614, hay que quitar un paréntesis, si no phpMyAdmin no funcionará.
Hola Kamil,
Tienes razón, hay un error en la solución indicada en el texto.
Además de añadir un paréntesis en la 613 hay que eliminar el que está al final de esa misma línea.
La línea 613 debe quedar así:
|| (count($analyzed_sql_results['select_expr']) == 1
De esta forma se mantiene la lógica y no se genera un error de sintaxis de PHP.
Gracias por tu aporte
Rolando
pongo root u otros nombres con o sin contraeñas y no me deja entrar al local el php usando mysql
Hola Darío, Gracias por participar Si no puedes acceder desde la consola con sudo mysql -u root, intenta lo siguiente: 1. Para el servicio mysql: sudo service mysql stop (Ubuntu) o sudo /etc/init.d/mysqld stop (CentOS, Fedora, RedHat) 2. Arranca mysql en modo seguro: sudo mysqld_safe –skip-grant-tables & 3. Ahora deberías poder conectar como root: sudo mysql -u root 4. Crea un nuevo usuario con los privilegios necesarios o cambia las contraseñas de los existentes según tus necesidades 5. Una vez realizadas las modificaciones, para el servicio de nuevo y arráncalo en modo normal. Deberías poder acceder con normalidad a mysql.… Read more »