美文网首页
linux访问access

linux访问access

作者: 哈哈新开张 | 来源:发表于2024-01-11 15:49 被阅读0次

    借助 mdbtools

    • yum install mdbtools mdbtools-devel后目录中没有/usr/lib64/libmdbodbc.so这个文件,有libmdb.so.2 libmdb.so.2.0.1 libmdbsql.so.2 libmdbsql.so.2.0.0,

    最后使用手动编译安装解决 下载地址 https://github.com/mdbtools/mdbtools

    • yum install unixODBC unixODBC-devel libtool-ltdl libtool-ltdl-devel automake autoconf 安装驱动和依赖
      github下来时可能没有configure文件,需要手动执行 autoreconf -i -f
    • ./configure --with-unixodbc --disable-man --with-unixodbc=/usr/local

    如果configure是ok的,make报错

    mdbsql.c:59:2: error: implicit declaration of function 'vsnprintf' [-Werror=implicit-function-declaration]
      vsnprintf(sql->error_msg, sizeof(sql->error_msg), fmt, ap);
      ^
    mdbsql.c: In function 'mdb_sql_strptime':
    mdbsql.c:377:3: error: implicit declaration of function 'snprintf' [-Werror=implicit-function-declaration]
       snprintf(pszDate, 16, "%lf", date);
       ………………………………
    

    yum install glibc-develexport CFLAGS="-std=gnu99"
    有些系统make完还需 ldconfig,见github

    编辑 /etc/odbcinst.ini 文件添加以下内容,以注册 MDBTools 的 ODBC 驱动:

    [MDBTools]
    Description=MDBTools Driver
    Driver=/usr/local/lib/libmdbodbc.so
    Setup=/usr/local/lib/libmdbodbc.so
    UsageCount=1
    

    编辑 /etc/odbc.ini 文件添加以下内容,以创建一个 DSN(数据源名称)

    [mes]
    Driver=MDBTools
    Database=/var/www/mes/b.accdb
    

    isql -v mes 可出现

    1705044200129.png

    /var/www/mes/b.accdb 是你自己的数据

    PHP代码如下

    $dbName = '/var/www/mes/b.accdb';
    $dsn = "odbc:Driver=MDBTools;DBQ={$dbName}";
    
    try {
        $pdo = new PDO($dsn);
        echo 'ok';
    } catch (PDOException $e) {
        echo "ng " . $e->getMessage();
    }
    

    读取本地access可以,网络win服务器一直没调试成功,如果需要挂载或复制到本地,不适用于采集场景

    相关文章

      网友评论

          本文标题:linux访问access

          本文链接:https://www.haomeiwen.com/subject/oultodtx.html