Foros del Web » Programando para Internet » PHP »

Fallo conexion mysql

Estas en el tema de Fallo conexion mysql en el foro de PHP en Foros del Web. Resulta que he subido mi página web al servidor y me da error de conexión con la base de datos. La cuestión es que hasta ...
  #1 (permalink)  
Antiguo 14/11/2011, 08:14
 
Fecha de Ingreso: marzo-2010
Mensajes: 8
Antigüedad: 14 años, 1 mes
Puntos: 0
Fallo conexion mysql

Resulta que he subido mi página web al servidor y me da error de conexión con la base de datos.
La cuestión es que hasta ahora la tenía alojada en otro servidor y no me salía este error y actualmente la he probado a subir a otro servidor y también funciona.
La página web es:
http://www.lagrapa.com/grapa/

Y el error:
Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/tmp/mysql5.sock:3306' (2) in /homepages/4/d384093357/htdocs/lagrapa.com/grapa/includes/classes/DB_Connection.class.php on line 51

Parece problema de programación pero en el otro servidor funciona perfectamente, adjunto el archivo que da error para ver si podéis intentar solucionarlo.

adjunto el código hasta donde da el error

Muchas gracias.

Código:
<?php
class DB_Connection
{
        /* PHP5
        public $ip;
        public $dbport;
        public $dbname;
        public $dbuser;
        public $dbpass;
        private $dbcon;
        */
        var $ip;
        var $dbport;
        var $dbname;
        var $dbuser;
        var $dbpass;
        var $dbcon;
        /**
         * @return DB_Connection()
         * @desc Constructor
         */
        function DB_Connection($ip="localhost:/tmp/mysql5.sock", $dbport=3306, $dbname="", $dbuser="root", $dbpass="root", $connect=true)
        {
                $this->ip = $ip;
                $this->dbport = $dbport;
                $this->dbname = $dbname;
                $this->dbuser = $dbuser;
                $this->dbpass = $dbpass;
                if($connect)
                {
                        $this->Connect();
                }
        }
        /**
         * Obtiene el host (ip o nombre) junto con el puerto
         *
         * @return string
         */
        function GetDBHost()
        {
                return $this->ip.":".$this->dbport;
        }
        /**
         * @return bool
         * @param bool $selectDB
         * @param bool $new
         * @desc Connects to server
         */
        function Connect($selectDB=true, $new=true)
        {
                if($this->dbcon = mysql_connect($this->GetDBHost(), $this->dbuser, $this->dbpass, $new))
                {
                        return $selectDB ? $this->SelectDB($this->dbname, $this->dbcon) : true;
                }
                return false;
        }
  #2 (permalink)  
Antiguo 14/11/2011, 08:25
Avatar de CesarHC  
Fecha de Ingreso: junio-2011
Ubicación: localhost
Mensajes: 566
Antigüedad: 12 años, 10 meses
Puntos: 56
Respuesta: Fallo conexion mysql

Si ese codigo que pegaste es todo, pues te falta cerrar una llave al ultimo "}" para cerrar la clase.

Haste algunos echos a ver como te llegan las variables.
__________________
Solo la práctica no te traicionara ¡¡¡¡¡¡

Seguir el camino tu debes PHP The Right Way.

Última edición por CesarHC; 14/11/2011 a las 09:00
  #3 (permalink)  
Antiguo 15/11/2011, 06:31
 
Fecha de Ingreso: marzo-2010
Mensajes: 8
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Fallo conexion mysql

Gracias por responder tan rápido, te adjunto un poco más de código, he puesto un trozo porque el error me lo da en la línea 51. A ver si me puedes hechar una mano.
Gracias!

Código:
	 * @desc Connects to server
	 */
	function Connect($selectDB=true, $new=true)
	{
		if($this->dbcon = mysql_connect($this->GetDBHost(), $this->dbuser, $this->dbpass, $new))
		{
			return $selectDB ? $this->SelectDB($this->dbname, $this->dbcon) : true;
		}
		return false;
	}
	/**
	 * @return bool
	 * @param $dbname string
	 * @desc Selects the database to work with. Returns true if exists, false if not.
	 */
	function SelectDB($dbname)
	{
		return @mysql_select_db($dbname, $this->dbcon);
	}
	/**
  #4 (permalink)  
Antiguo 15/11/2011, 08:30
 
Fecha de Ingreso: octubre-2011
Ubicación: madrid
Mensajes: 12
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Fallo conexion mysql

El servidor Trabaja con Mysql??
  #5 (permalink)  
Antiguo 15/11/2011, 09:20
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: Fallo conexion mysql

Fijate primero lo que dice Idiel, si el servidor soporta mysql, si soporta puede que tengas problemas con el tunneling o con el TCP.

Si tenes desabilitado el TCP podes probar utilizando el socket de mysql. Probalo colocando en vez de la variable $host:$port de tu mysql_connect() por esto: localhost:/tmp/mysql.sock

Despues decinos a ver si levantó

Saludos!
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #6 (permalink)  
Antiguo 16/11/2011, 02:58
 
Fecha de Ingreso: marzo-2010
Mensajes: 8
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Fallo conexion mysql

Si trabaja con mysql, alli he subido la base de datos, he probado de cambiar la variable $host:$port pero no se si no lo he hecho bien, donde exactamente lo tendría que cambiar? Daba error de sintaxis.
Disculpad, pero no se mucho de php, estoy desesperado necesito que funcione la web ya....muchas gracias por vuestra ayuda.
Este es el enlace http://www.lagrapa.com/grapa/ que da error, tengo subidas otras bases de datos en el mismo servidor y funcionan, pero esta...me esta dando muchos quebraderos de cabeza.
No puedo poner el código entero porque es muy largo, como lo podríamos hacer.

Gracias.
  #7 (permalink)  
Antiguo 16/11/2011, 05:52
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: Fallo conexion mysql

Proba algo sencillo, por ahora olvidate de hacer una clase que maneje la conexion, asi te va a ser mas facil encontrar el error y mas facil de probar.

primero podes empezar por conectarte a la base por consola, a ver si se te conecta bien, porque si se conecta bien el problema no esta en mysql. Proba conectandote sin pasarle el puerto y con el puerto.

Despues hacete un script facil que lo unico que haga es conectarse, y empeza a probar. Es muy raro que no te funcione.

Estas usando tecnologia LAMP??
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com

Etiquetas: conexion, fallo, mysql, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:31.