SQLSTATE[IM002] SQL DriverConnect: 0 [Microsoft][ODBC Driver Manager] Nombre de fuente de datos no encontrado y ningún controlador predeterminado especificado en Laravel

Después de instalar el composer require moodlesbv/laravel-msaccess y seguir las instrucciones sobre cómo configurar la conexión. Ya he descargado el accessdatabaseengine_X64, y también ya estableció el DataSource en ODBC Data Source (x64), pero tengo este error.

Laravel 6, PHP 7.4

exception: "Doctrine\DBAL\Driver\PDO\Exception"
file: "C:\xampp\htdocs\hris_mirdc\hris\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDO\Exception.php"
line: 18
message: "SQLSTATE[IM002] SQLDriverConnect: 0 [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified"

base de datos.php config file

'connections' => [
    'access' => [
        'driver' => 'pdo_access',
        'connection_string' => 'dsn={UNIS}',
        'username' => 'unisuser',
        'password' => 'unisamho',
        'table_prefix' => '',
    ]
],

Este es el phpinfo

Pregunta hecha hace 3 años, 4 meses, 29 días - Por techmaestro


2 Respuestas:

  • El error que estás viendo indica que no se ha encontrado el nombre de la fuente de datos en la conexión ODBC que estás intentando establecer en Laravel.

    Para solucionar este problema, aquí hay algunos pasos que puedes seguir:

    • Verifica el nombre de fuente de datos (DSN) en la conexión ODBC: Asegúrate de que el nombre de la fuente de datos que estás utilizando en la configuración de Laravel coincida exactamente con el DSN que has configurado en ODBC Data Source (x64).
    • Revisa la cadena de conexión en el archivo de configuración de Laravel: En tu archivo de configuración de base de datos `database.php`, la clave `connection_string` debería contener la información correcta para establecer la conexión a la base de datos MS Access. Asegúrate de que la cadena de conexión esté formateada correctamente.
    • Verifica el controlador ODBC instalado: Asegúrate de que el controlador ODBC adecuado esté instalado en tu sistema y esté configurado correctamente. Puedes verificar esto en el Administrador de controladores ODBC de Windows.
    • Reinicia el servidor y Laravel: Después de hacer cualquier cambio en la configuración, asegúrate de reiniciar tanto el servidor web como Laravel para que los cambios surtan efecto.

    Siguiendo estos pasos, deberías poder resolver el error y establecer la conexión correctamente. Si sigues experimentando problemas, revisa detenidamente la configuración de la conexión ODBC y los ajustes en Laravel para asegurarte de que todo esté configurado correctamente.

    Respondida el Dec 19, 2020 a las 11:34 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Solución:

    El error indica que el controlador ODBC correspondiente no está instalado o no está configurado correctamente.

    Para resolver este problema, sigue estos pasos:

    • Verifica la instalación del controlador ODBC:
    - Asegúrate de que has instalado el controlador Microsoft Access Database Engine Redistributable adecuado (ya mencionaste que lo has hecho).
    • Verifica que el controlador esté registrado en el sistema. Puedes hacerlo ejecutando el comando `odbcad32` y comprobando si el controlador "Microsoft Access Driver (.mdb, .accdb)" está listado.
    • Configura el nombre del origen de datos (DSN):
    - Abre la herramienta Fuentes de datos ODBC (odbcad32) y crea un nuevo DSN de sistema para el archivo de base de datos de Access.
    • Asigna un nombre al DSN (por ejemplo, "UNIS") y especifica la ruta completa al archivo de la base de datos de Access.

    • Actualiza el archivo config/database.php:
    - En el archivo config/database.php de Laravel, modifica la configuración de la conexión de acceso para utilizar el DSN recién creado:

    php
       'connections' => [
           'access' => [
               'driver' => 'pdoaccess',
               'connectionstring' => 'dsn=UNIS', // Actualiza el DSN
               'username' => 'unisuser',
               'password' => 'unisamho',
               'table_prefix' => '',
           ]
       ],
       

    • Reinicia la aplicación:
    - Reinicia la aplicación Laravel para que los cambios surtan efecto.

    Consejos adicionales:

    Asegúrate de que el usuario que ejecuta la aplicación tiene permisos para acceder al archivo de la base de datos de Access. Si sigues teniendo problemas, intenta utilizar el paquete php-odbc en lugar del paquete moodlesbv/laravel-msaccess.

    Espero que esto resuelva tu problema.

    Respondida el Dec 19, 2020 a las 11:43 - por Gemini

    Votos positivos: 0 | Votos negativos: 0