SQL Sockets ??

Hola.

Estoy empezando a familiarizarme con Yii y me encuentro una limitación que no esperaba:

Resulta que estoy probando con el primer ejemplo de CRUD. En el entorno de desarrollo en mi máquina local no tengo ningún problema pero cuando exporto a un servidor web, obtengo el mensaje de error:

CDbConnection failed to open the DB connection: SQLSTATE[HY000] [2002] Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)

Entiendo que esto no debería ocurrir al hacer la conexión a la DB a través de ‘localhost’ en la configuración.

¿No es así?

Gracias por adelantado.

Sorry for english.

You must either define the correct path to the socket file (the one in php.ini is obviously wrong), or you can connect trhu TCP instead of socket. Set host to 127.0.0.1 instead of localhost to do so.

Hello yiiframework.com

I am a newbie programmer, so I will need your help! Locally the webapp works ok with the db on it!

When I uploaded the application on the cloudcontrol, it comes up with the following error:

CDbConnection failed to open the DB connection: SQLSTATE[HY000] [2002] Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)!

I suppose I have not uploaded the db. This is the very first time I upload a webapp on a server so I do not know the exact steps that I have to follow in order to upload the db on a server. Cloudcontrol has documentation about mysql! I did follow the steps but the webapp comes with the same error!

Could you please tell me what steps I have to follow in order to make it working? I am sure that this error is due to lack of knowledge!

any ideas?

YENDO A TU PUNTO: EN ESPAÑOL.

[color="#ff0000"](NOT IN ENGLISH…IF THE FORUM IS IN SPANISH / NO EN INGLES SI EL TEMA FUE ABIERTO EN ESPAÑOL.)[/color]

  1. Hay proxy o no. Si hay proxy activo, quiza éste haya denegado la conexión a "localhost". Prueba con 127.0.0.1, pero eso no garantiza nada si tu proxy activo (en caso de estarlo) no esta configurado para darle paso, o por el otro lado, que tu server de MySQL no este escuchando en esta dirección sino en la de una tarjeta de red alterna en caso de que tengas mas de una.

  2. Si no hay proxy. verifica que no tienes ningun punto de control intermedio.

  3. Verificación rápida usando linea de comandos: "cmd.exe luego: telnet localhost 3006", debe presentar una pantalla en negro si la conexión fue exitosa descartando asi que tu conexion no acepte sockets y que no tengas un firewall atravesado denegando.

  4. intenta conectarte usando la herramienta cliente nativa de MySQL, usando los mismos argumentos que tienes en tu configuración de Yii, host y puerto. Debe conectarse.

  5. crea un script PHP basico (sin yiii) que abra una conexion a MYSQL, el cual debe responder con un recurso valido.

    [color="#0000bb"]mysql_connect[/color][color="#007700"]([/color][color="#dd0000"]‘example.com:3307’[/color][color="#007700"], [/color][color="#dd0000"]‘mysql_user’[/color][color="#007700"], [/color][color="#dd0000"]‘mysql_password’[/color][color="#007700"]);

[/color]debe conectarse. de nuevo recuerda usar los mismos argumentos de tu configuración de Yii.

  1. revisa que en tu configuración de php.ini tengas habilitadas todas las extensiones requeridas. esto se hace por vias manuales o por ejecución del script que trae Yii:

http://localhost/tu-instalacion-de-yii/requirements

  1. finalmente, revisa tus argumentos de configuración en Yii y adicionalmente revisa que tipo de conexión acepta tu servidor local, pero esto ultimo lo puedes garantizar con el paso #5 que aqui publico.

  2. Copia aqui, la parte de tu config de yii que muestra tus parametros de conexión, sin la clave por supuesto.

te puedo garantizar que el problema esta en tu configuración (de Yii, o de MySQL), y no en una limitación que tu encontraste en Yii recién entrando a concerle, es una muy mala forma de entrar a la comunidad Yii…disculpas si causo molestias con mi comentario pero a mi me causo incomodidad.

Si somos latinoamericanos y abrimos un tema en la parte de español.para discutirlo en español…entonces para que un latinoamericano igual a nosotros y no mas que ninguno de nosotros responde en ingles…entonces…simplemente abre el tema en ingles…y no en la parte de español, he visto esto tantas veces aqui que ya me cae tan pesado que tuve que exponer mi sentimiento aqui.

El problema está en usar localhost en el dbconnection. Usa "127.0.0.1" como host y seguramente te conecte bien.