Mi web no se conecta con la base de datos
5 seguidores
Hola, un cliente me ha pedido que haga cambios en una web que tenía hecha y que se la cambie a otro dominio. La web en cuestión es esta y el problema es que me salen, entre otros, estos errores en el nuevo dominio:
function.mysql-db-query]: Can't connect to local MySQL server through socket '/tmp/mysqld.sock' (2) in /homepages/13/d322188303/htdocs/public_html/index.php on line 239
He estado "googleando" y "domestikando" pero no me aclaro mucho. Además que la programación no es lo mío.
Gracias otra vez por vuestra ayuda
ernexbcn
Revisa la configuración de la base de datos de la web, no sé si has configurado la forma en que debe conectarse a mysql en el nuevo hosting, más que probable los datos son diferentes y has de cambiarlos.
ferdev
Comprueba que exista el socket:
ls /tmp/mysqld.sock
Si no existe, el comando anterior te dirá que no ha encontrado el archivo y tendrás que crear tu el enlace simbólico.
Depende de la versión del sistema operativo, y de la versión de mysql, el socket estará en un lugar u otro. Tendrás que localizar el socket original, y hacer un enlace simbólico:
ln -s /ruta/al/socket/original.sock /tmp/mysqld.sock
Tiene toda la pinta que este es tu problema :) Saludos!
ernexbcn
No creo que tenga acceso SSH o sepa cómo va eso…
herrralf
efectivamente ernexbcn, ¿esa ruta debo ponerla en el navegador? ¿desde el dominio de la web? Lo dicho, la programación no es lo mío...
ferdev
Sí, perdón, pensé que tendrías acceso ssh. Si no tienes acceso por ahí no te sirve de nada :) Pregúntale al hosting cual es la ruta del socket y revisa los parámetros de configuración como te ha indicado ernexbcn :)
dagi3d
también podría ocurrir que en lugar de conectarse por el socket tenga que hacerlo a través de un host. prueba indicando el nombre de éste en los parámetros que estés utilizando para conectarte. si no te sabes el nombre prueba con 'localhost'
ehelguero
como dice dagi3d podrias mirar la forma de conectar con la base de datos, ya que con mysql_connect puedes pasarle el socket "localhost:/tmp/mysql.sock" o ponerle el servidor "localhost:puerto" al que quieres conectarte. En el codigo que utilizas para conectar a la bd busca la linea que ponga mysql_connect y ponle algo asi mysql_connect('host', 'usuario', 'contraseña');.
Te dejo el link a la web de php con la info de mysql_connect:
http://php.net/manual/en/function.mysql-connect.php
herrralf
Muchísimas gracias por la ayuda. Iré trasteando con toda esta información y os cuento como me ha ido.
herrralf
La cosa se va liando, ahora sale un mensaje como este en dos de las secciones:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
Pero en Inicio no sale nada, ni en productos ni en ofertas. Estoy mirando el html por si hay algo que se me pasa, pero estoy a punto de tirar la toalla. O hago un curso de php o me muero de los nervios. Gracias de todas maneras por vuestra ayuda...
ehelguero
Eso quiere decir que no le estas pasando el parametro correcto a la funcion mysql_fetch_array. Tenes que mirar que la variable en donde estas guardando lo que te devuelve la funcion mysql_db_query o mysql_query, se la estes pasando a la funcion mysql_fetch_array.
<?php
$resultado = mysql_query('SELECT * FROM tabla');
$fila = mysql_fetch_array($resultado);
?>
herrralf
Finalmente ya he conseguido que la web "lea" los datos de la BBDD. Gracias a todos por vuestra ayuda, de verdad que cada día me alegro más de pertenecer a la familia "domestika". ¡¡¡Un saludo a todos!!!
herrralf
Hola amigos, reabro el hilo. La web va avanzando (muuuuy lentamente) pero ahora me ha salido un enanito: cuando subo fotos no me las pilla, aunque las pongo en el formato que toca y en el tamaño que manda, en la web me sale el recuadro indicando que ahí hay una imágen pero no la saca. Joder, cuando piensas que lo tienes todo atadito, se te empieza a desmontar la paraeta. ¿Alguien que me eche un cablecito?...
Por cierto, la web...