Comunidad de diseño web y desarrollo en internet online

path del servidor cuando conecto PHP y MySQL

Citar            
MensajeEscrito el 28 Dic 2010 06:50 pm
Hola a tod@s,
Estoy intentando por primera vez, conectar un PHP con una Base de Datos MySQL que tengo en un servidor. Y ya estoy atrapado. En concreto, no sé si estoy poniendo bien el primer parámetro acerca del servidor:

<?php

$username="xxxxxxxx";
$password="xxxxxxx";
$database="xxxxxxxxxxxxxxxxx";
$duplicated = false;

mysql_connect("mysql5-lnx-sh-01.silicontower.net",$username,$password) or die("No he podido conectar");
...

Asumiendo que el usuario y el pw són correctos, de dónde saco el primer parámetro?
He leído que define el servidor SQL que contiene la BBDD pero no sé qué poner...

gracias y un saludo

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 28 Dic 2010 07:57 pm
si la base de datos esta en el mismo servidor que en donde ejecutas php, pone en el primer parametro solo "localhost".

Saludos

Por GustavoV

Claber

136 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 28 Dic 2010 09:58 pm
tiene razon sobre de poner "localhost" ahora si tus erver es externo hay mas problemas q lidiar como por ejemplo si la conexion va cifrada o no y por q puerto en caso de ser un host SQL externo y dependiendo de eso usas lo que se llama Wrappers,
de php
ejemplo

Código PHP :

   mysql_connect("ssl://mi_servidor_mysql.com:3030",$username,$password);

con eso le indico que las conexiones van cifradas y van por el puerto 3030; recuerda tener las librerias OPEN SSL de php habilitadas

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 29 Dic 2010 03:10 pm
Hay otra cosa que debes tener en cuenta. Si bien es posible conectar a un servidor MySQL remotamente, esto es, que el servidor MySQL está en otra máquina distinta de la que ejecutas PHP, sea por Internet, sea por LAN, el servidor remoto debe estar configurado para que acepte conexiones remotas. Si has contratado un hosting con MySQL deberás consultar si es posible acceder remotamente.

En caso de que no puedas (o no quieras, porque suelen cobrar más por acceso remoto a la base de datos), lo que te conviene hacer es instalar MySQL en tu máquina de desarrollo y programar desde ahí, luego cuando tengas todo probado lo subes todo al hosting remoto.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 29 Dic 2010 05:07 pm
Buenas,

Gracias a todos por la rapidez de las respuestas.. me han sido muy útiles..
El servidor dónde se encuentra el PHP no es el mismo que el servidor de MySQL, aunque los dos están dentro del mismo Hosting.
En consecuencia, poner 'localhost' no me ha funcionado.
He puesto la ruta del servidor MySQL tal y como me aparece en el backoffice del Desk-->Base de Datos, primero con el numero del puerto y me ha funcionado, y después sin el número y también me ha funcionado (no es un servidor SSL).
¿Es normal que me funcione de ambas formas?

¿Es seguro que dentro del PHP del servidor esté el usuario y la clave de conexión a la base de datos?
¿Pueden los Bots descargarse o visualizar este PHP?
¿Debo dar privilegios de sólo lectura al cliente que se conecte a la base de datos?
¿Me recomendáis que utilice SSL?

Ya véis, al final he soltado todas mis inquietudes..
(es que me he sentido arropado)

Gracias de antemano y un saludo

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 29 Dic 2010 06:43 pm

Calot escribió:


He puesto la ruta del servidor MySQL tal y como me aparece en el backoffice del Desk-->Base de Datos, primero con el numero del puerto y me ha funcionado, y después sin el número y también me ha funcionado (no es un servidor SSL).
¿Es normal que me funcione de ambas formas?

por defecto en las conexiones q mysql esta por defecto el numero de puerto y la conexion normal
cuando haces esto

Código PHP :

mysql_connect('localhost',$user,$pass);
//estas haciendo
mysql_connect('localhost:3360',$user,$pass);

ahora lo de si es o no ssl tiene un par de riesgos si la infraestrutura es interna y no es bien administrada, ya que hay cosas como MITM que podrian capturar el user y el pass de la aplicacion cuando realiza una conexion a mysql

Calot escribió:

¿Es seguro que dentro del PHP del servidor esté el usuario y la clave de conexión a la base de datos?

eso depende de tu Servidor Web si esta como CGI o como modulo, si esta como modulo con tal de q la configuracion este bien realizada no se podra visualizar tu codigo, a lo que me refiero es que si configuras mal alguna parte de tu server podria afectar al modulo y provocar un error en la forma de visualizar la peticion, que te manda el cliente, ademas e visto servidores q lo han hehco por lapsos de tiempo como 1 hora donde no procesaba las paginas php y enviaba todo en texto plano pero si tienes la posibilidad de subir tu conexion a una carpeta con attributos especiales ,hazla ser mas seguro
ejemplo: www.dominio.com apunta a la ruta absoulta del server /var/www/pedroperales/public_html
entonces creas tu archivo de configuracion un directorio antes quedando asi /var/www/pedroperales/conexion.php
y en tu archivo index le haces un require
www.dominio.com/index.php

Código PHP :

require('../conexion.php');

de esta forma no hay posibilidad de accesar a tu archivo via url
[quote="Calot"]¿Pueden los Bots descargarse o visualizar este PHP?[quote]
hay spiders buscando este tipo de fallos pero mas estan centrados en sitios de alto trafico tipo youtube que constantemente revisan el sitio para ver si hay algun fallo e intentar descargarse pero es poco probable ya los servidores preveen eso
[quote="Calot"]¿Debo dar privilegios de sólo lectura al cliente que se conecte a la base de datos?[quote]
el cliente se conectara atravez de tus scripts php por lo que no veo la necesidad de hacerlo almenos que se conecten via un programa de escritorio que haga la conexion bueno en ese caso si tienes que ponerle permisos
[quote="Calot"]¿Me recomendáis que utilice SSL?[quote]
eso depende ya que usar ssl significa mas gasto de ancho de banda y mas milisegundos de proceso ya q como sabras ssl son conexiones cifradas y hay una pequeña demora en cifra y decifrar si crees q tu proyecto hay datos demasiados importantes si es muy recomendable pero recuerda tienes que pelear con certificados publicos y privados los publicos son los que los navegadores web reconocen y tienen un costo los privados siempre hacen que el usuario le salte una alerta de aceptar el certificado o no

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 29 Dic 2010 07:11 pm
Pues muchísimas gracias a todos por las respuestas, me han sido de mucha utilidad y me han despejado muchas dudas.

Un fuerte saludo a tuadmin y a tod@s

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 30 Dic 2010 02:57 pm
Las respuestas que ha dado tuadmin son acertadas. Sin embargo quisiera hacer algunas puntualizaciones que estoy seguro ayudará a muchos.

¿Es normal que me funcione de ambas formas?

Sí. Porque cuando no especificas el puerto de conexión, el controlador de MySQL usa el puerto por omisión * que es el 3306 (y no el 3360 como ha escrito tuadmin).

¿Es seguro que dentro del PHP del servidor esté el usuario y la clave de conexión a la base de datos?

Sigue el consejo de tuadmin. Es la mejor manera de proteger los datos de conexión y no cuesta nada. Otra cosa, no llames al archivo "conexion.php", es muy obvio ;)

*: La expresión "por defecto" es incorrecta en espaol. La traducción de "by default" del inglés no es esa, sino "por omisión" ("puerto por defecto" significa que el puerto es defectuoso? :P )

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 30 Dic 2010 03:55 pm

DriverOp escribió:

La expresión "por defecto" es incorrecta en espaol. La traducción de "by default" del inglés no es esa, sino "por omisión" ("puerto por defecto" significa que el puerto es defectuoso? :P )

jeje cierto tienes mucha razon con razon reprobe linguistica ajajaj

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.