una such puede mysqli_real_connect hy000 establecer error conexión conexion macos mysqli phpmyadmin

macos - such - mysqli_real_connect():(HY000/2002): No existe tal archivo o directorio



mysqli_real_connect():(hy000/2002): no such file or directory linux (11)

mysqli_real_connect(): (HY000/2002): No such file or directory

Error de PhpMyAdmin en MacOS. Quiero respuesta Realmente no tengo idea de lo que necesito hacer para resolver esto.


phpmyadmin 2018 octubre

Localice config.sample.inc.php

Cambio

$cfg[''Servers''][$i][''host''] = ''localhost'';

dentro

$cfg[''Servers''][$i][''host''] = ''127.0.0.1'';

Salvar.

Luego cambie el nombre del archivo y elimine la muestra del nombre.


mysqli_connect (): (HY000 / 2002): No existe tal archivo o directorio

Fondo:

Solo quería ejecutar algunas pruebas de PHPUnit en mi Mac, usando Terminal. Algunas de las clases que quiero probar fue tener que conectar MySQL DB, que fue creado y administrado por PHPMyAdmin, y la aplicación web que estaba trabajando funcionaba bien en el host local. Entonces, cuando ejecuté esos casos de prueba, obtuve el siguiente error en mi terminal:

mysqli_connect(): (HY000/2002): No such file or directory

Solución:

Entonces, con la picazón que tuve que resolver y ejecutar mi prueba, busqué en algunos hilos SO Q&A y probé. Y una combinación de cambios funcionó para mí.

  1. Ubique su archivo config.inc.php que se relaciona con PHPMyAdmin.
  2. Localice la línea $cfg[''Servers''][$i][''host''] su mayoría esta línea podría haber sido comentada por defecto, si es así, descomente.
  3. Y reemplace esa línea con lo siguiente:

$cfg[''Servers''][$i][''host''] = ''127.0.0.1'';

  1. Guárdelo y reinicie la base de datos MySQL desde su panel de control XAMPP (manager-osx).
  2. Cambie el $host su parámetro $host en el método mysqli_connect() a lo siguiente:

$_connection = mysqli_connect(**"localhost: 3306"**, $_mysql_username, $_mysql_password, $_database);

Nota: Este 3306 es mi número de puerto MySQL, que es el predeterminado. Debería comprobar mejor cuál es su número de puerto MySQL real antes de seguir estos pasos.

Y eso es todo. Para mí, solo este conjunto de pasos funcionó y nada más. Ejecuté mis pruebas unitarias y funciona bien y los datos de la base de datos también se actualizaron correctamente de acuerdo con las pruebas.

Por qué esto funciona:

La razón más cercana que pude haber encontrado es que funciona porque a veces el método mysqli_connect requiere un socket de trabajo (dirección IP del host DB junto con el número de puerto) de la base de datos. Entonces, si ha comentado $cfg[''Servers''][$i][''host''] = ''127.0.0.1''; línea o ha establecido ''localhost'' como el valor en él, ignora el número de puerto. Pero si quieres usar un socket, entonces debes usar ''127.0.0.1'' o el nombre de host real. (para mí parece ser independientemente del número de puerto predeterminado que realmente tenemos, tenemos que hacer los pasos anteriores). Lea el siguiente docs.phpmyadmin.net/en/latest/config.html para obtener más detalles.

Espero que esto pueda ser útil para alguien más por ahí.

¡Aclamaciones!


En primer lugar, asegúrese de que el servicio mysql se esté ejecutando:

ps elf|grep mysql

verá una salida como esta si se está ejecutando:

4 S root 9642 1 0 80 0 - 2859 do_wai 23:08 pts/0 00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/lib/mysql/tomcat-machine.local.pid 4 S mysql 9716 9642 0 80 0 - 200986 poll_s 23:08 pts/0 00:00:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/lib/mysql/tomcat-machine.local.err --pid-file=/var/lib/mysql/tomcat-machine.local.pid

luego cambie localhost a 127.0.0.1 en config.inc.php

$cfg[''Servers''][$i][''host''] = ''127.0.0.1'';

La contraseña predeterminada para el usuario "root" está vacía "" no escriba nada para la contraseña

Si no permite una contraseña vacía, debe editar config.inc.php nuevamente y cambiar:

$cfg[''Servers''][$i][''AllowNoPassword''] = true;

El problema es una combinación de configuraciones de configuración y MySQL no se está ejecutando. Esto fue lo que me ayudó a solucionar este error.


Estoy intentando esto antes

cd / opt / lampp / phpmyadmin

entonces

gedit config.inc.php

encuentra esto,

$cfg[''Servers''][$i][''host''] =

si hay localhost cámbielo a 127.0.0.1

Nota: si hay ''//'' eliminar // antes de $cfg[''Servers''][$i][''host'']

Revisé nuevamente http://localhost/phpmyadmin/

mysqli dijo:

"phpMyAdmin intentó conectarse al servidor MySQL, y el servidor rechazó la conexión. Debe verificar el host, el nombre de usuario y la contraseña en su configuración y asegurarse de que corresponden a la información proporcionada por el administrador del servidor MySQL".

Estoy abriendo nuevamente config.inc.php y encontré

$cfg[''Servers''][$i][''password''] =

Rellene la contraseña con su contraseña

A mi me funciono. Puede funcionar para usted también.


Si está utilizando archlinux o Ubuntu, simplemente escriba los comandos a continuación:

$ cd / opt / lampp / phpmyadmin

entonces

$ sudo gedit config.inc.php

Luego, cuando acceda al archivo, busque los scripts a continuación,

// $ cfg [''Servidores''] [$ i] [''host''] = ''localhost''

elimine '' // '' para que quede como se muestra a continuación:

$ cfg [''Servidores''] [$ i] [''host''] = ''localhost''

Luego cambie el '' localhost '' a '' 127.0.0.1 '' y el script debería cambiar como se muestra a continuación:

$ cfg [''Servidores''] [$ i] [''host''] = ''127.0.0.1''

Regrese a su navegador y escriba http://127.0.0.1/phpmyadmin/

Si todavía se niega

Debe verificar el host, el nombre de usuario y la contraseña en su configuración y asegurarse de que corresponden a la información proporcionada por el administrador del servidor MySQL.

entonces regrese al mismo archivo config.inc.php que estaba editando y haga lo siguiente:

$ cd / opt / lampp / phpmyadmin

entonces

$ sudo gedit config.inc.php

busca el guión a continuación

$ cfg [''Servidores''] [$ i] [''contraseña''] = ''''

Rellene la contraseña con su contraseña de root

$ cfg [''Servidores''] [$ i] [''contraseña''] = ''su_contraseña''

Y debería funcionar. Felices piratas amigos.


Si las soluciones anteriores no funcionan, intente cambiar la configuración predeterminada de 3306 a otra (es decir, 3307)


Si su sitio web funcionaba bien y ahora ERROR inesperado: (HY000/2002): No such file or directory

¡Entonces NO DEBE CAMBIAR ningún archivo de configuración!

Primero verifique el archivo error.log del servidor, para Nginx se encuentra:

/var/log/nginx/error.log

O para Apache intente:

/var/log/apache2/error_log

En mi caso, pude ver un error fatal de PHP: FUERA DE MEMORIA en error.log para nginx.

La solución: agregue más RAM al servidor.

Intenté reiniciar el servidor web primero antes de actualizar / agregar RAM. Luego me deshice de ERROR (HY000/2002) but got some ERROR 50X: Connection Error...

En este punto, agregué 2 GB de RAM, reinicié el servidor web y ¡todo funcionaba bien!

Cuando el servidor web estuvo en funcionamiento, noté que más de 200 trabajos cron estaban atascados debido a un error de bucle en 1 script PHP.

Así que verifique qué script está consumiendo memoria.


Solo necesita cambiar el nombre de ib_logfile0 e ib_logfile1 como ib_logfile_0 e ib_logfile_1. Entonces su problema estaría resuelto.


Solucioné el problema hoy usando los pasos a continuación:

  1. Si config.inc.php no existe en el directorio phpMyadmin Copie config.sample.inc.php a config.inc.php.

  2. Agregar socket a /* Server parameters */

    $cfg[''Servers''][$i][''socket''] = ''/tmp/mysql.sock'';

  3. Guarde el archivo y acceda a phpmyadmin a través de la url.

Si está utilizando mysql 8.0.12, debe usar el cifrado de contraseña heredado, ya que el cifrado seguro no es compatible con el cliente php.


Tal vez su servidor SQL ha sido detenido

sudo /etc/init.d/mysql start


cambie localhost a 127.0.0.1 en config.inc.php

$cfg[''Servers''][$i][''host''] = ''127.0.0.1'';

La razón de esto es que pma intenta conectarse al mysql.socket si usa localhost. Si usa 127.0.0.1 PMA hace una conexión TCP que debería funcionar.