quitar - php: mysql_connect() falla sin mensaje de error
mysqli_query (2)
Estoy ejecutando un script de prueba simple desde la línea de comandos en CentOS 5.6 con el paquete de PHP instalado desde PHP 5.3 en CentOS / RHEL 5.6 .
PHP funciona bien en todos los demás casos, pero cuando mysql_connect()
falla sin error.
Si corro
$ php -m
No estoy viendo MySQL como un módulo instalado.
Sin embargo, he agregado extension=mysql.so
a mi php.ini y reiniciado.
Salida de ''rpm -qa | grep php ''
php-common-5.3.10-1.w5
php-5.3.10-1.w5
php-cli-5.3.10-1.w5
Salida de ''yum install php-mysql''
--> Missing Dependency: php-common = 5.1.6-27.el5_7.5 is needed by package php-mysql-5.1.6-27.el5_7.5.x86_64 (updates)
php-pdo-5.1.6-27.el5_7.5.x86_64 from updates has depsolving problems
--> Missing Dependency: php-common = 5.1.6-27.el5_7.5 is needed by package php-pdo-5.1.6-27.el5_7.5.x86_64 (updates)
Error: Missing Dependency: php-common = 5.1.6-27.el5_7.5 is needed by package php-pdo-5.1.6-27.el5_7.5.x86_64 (updates)
Error: Missing Dependency: php-common = 5.1.6-27.el5_7.5 is needed by package php-mysql-5.1.6-27.el5_7.5.x86_64 (updates)
You could try using --skip-broken to work around the problem
You could try running: package-cleanup --problems
package-cleanup --dupes
rpm -Va --nofiles --nodigest
The program package-cleanup is found in the yum-utils package.
Primero, algunos consejos: deje de usar las bibliotecas de MySQL y use PDO o al menos las bibliotecas de MySQL.
Ahora, para obtener ayuda con la solución de problemas: el primer paso es estar 100% seguro de que se está cargando el mysql. Crea un script (basado en web) con:
phpinfo ();
Confirme que en algún lugar de esta página haya un bloque que indique que se está cargando la extensión mysql.
Dondequiera que esté probando, no está seguro de los errores, justo antes de llamar a mysql_connect agregue estas líneas:
ini_set(''display_errors'', 1);
ini_set(''log_errors'', 1);
error_reporting(E_ALL | E_STRICT);
Esto asegurará que no esté suprimiendo los errores en otro lugar antes de la conexión. Algunos marcos a veces hacen esto.
Si de hecho se está cargando el módulo y con el código de registro de errores agregado, aún no se obtiene un error válido. Intentaría conectarme en una secuencia de comandos php script. Mire en el archivo php.ini para ver en qué está configurado "error_log". Este es el registro predeterminado en el que se registrará: a veces las configuraciones basadas en http anulan el registro, por lo que incluso si se producen errores, no las verá o no las podrá encontrar. Un script de línea de comandos php lo tiene en cuenta.
Por último, pero no menos importante, siempre puedes publicar tu cadena de conexión en esta publicación. Intente conectarse desde la línea de comando en el servidor como su script usando el comando mysql con las mismas credenciales que su mysql_connect. Es posible que pueda conectarse bien, pero tenga malas credenciales.
Si el módulo no se está cargando, intente encontrar exactamente dónde reside el módulo y ponga la ruta completa en php.ini. Yum a veces instala cosas que no están donde lo está buscando php.ini. Al final de la instalación de Yum, a veces te dice la ruta, si no, para encontrarla con la fuerza bruta, haz esto:
cd /
find . -name ''mysql.so''
entonces en el php.ini, en lugar de
extension=mysql.so
poner
extension=/path/to/found/mysql.so
¡Buena suerte!
I am not seeing MySQL as an installed module.
¿Lo instalaste?
# yum install php-mysql
(del mismo repositorio desde el que instaló php
).
EDITAR:
ejecuta esto:
yum --enablerepo=webtatic install php-mysql
esto le dice a yum que obtenga los paquetes del repositorio webtatic (además de los repositorios configurados del sistema). Si desea webtatic entre los repositorios habilitados del sistema, ejecute:
yum --enablerepo=webtatic install webtatic-release