conectarse a un servidor de base de datos utilizando funciones de fsockopen o socket y emisores de comandos

StackOverflow https://stackoverflow.com/questions/7302273

Pregunta

¿Cómo nos conectamos a un servidor de base de datos utilizando cualquier lenguaje de programación utilizando funciones de socket? Estoy pensando como los protocolos. Por ejemplo, SMTP, HTTP, FTP, IMAP. Nos conectamos a estos puertos y emitimos Comands (Ejecutar comandos). Como estos, es posible conectarse a un servidor de base de datos (el puerto es 3306) y podemos emitir comandos que podrían ejecutar diversas funcionalidades como DDL, DML, TCL.

Dado que las personas dicen que el servidor de bases de datos pensé en esto como si fuera una posibilidad de hacer a lo que creo en lugar de usar funciones SQL relacionadas con el lenguaje de programación como mysql_connect, mysql_select o mysql_query ...

Me gustaría tener sugerencias, respuestas y referencias. Puede ser que no estoy usando la cadena de búsqueda relevante en Google para encontrar información para esto.

¿Fue útil?

Solución

Deberá comunicarse con los servidores utilizando sus protocolos (personalizados).

¿Por qué querrías volver a implementar estos protocolos? A menos que esto sea solo curiosidad académica, es mucho mejor usar las bibliotecas que proporcionan los proveedores de DB.

Las funciones de las que hablas (mysql_connect, mysql_query, ...) están actuando esencialmente en un zócalo crudo, pero conocen el protocolo. Toman una consulta SQL, toman un zócalo y procesan la consulta en los datos correctos para enviar.

Los protocolos sobre cosas como los servidores DB serán legibles no humanos. El HTTP es bonito y claro en comparación con un protocolo diseñado para un tamaño pequeño y un análisis estricto. A menos que lo necesite absolutamente, evitaría reinventar la rueda.

Otros consejos

"No lo haces". A menos que un servicio en particular documente su protocolo como una API pública, esto es arriesgado, difícil y propenso a romper en cualquier minuto. El protocolo podría incluso incluir elementos específicamente destinados a dificultar esto. Puede, por supuesto, Wireshark e ingeniería inversa del protocolo, pero nunca se sabe con certeza que la definición no incluye 'el 22 de septiembre cambia todas las Q a R.'

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top