美文网首页
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