安装全新的 Ubuntu 16.04 副本后,我尝试按照https://help.ubuntu.com/community/ODBC 上的官方文档安装 MySQL ODBC :
# apt-get install libmyodbc
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package libmyodbc is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'libmyodbc' has no installation candidate
Run Code Online (Sandbox Code Playgroud)
我可以看到这是一个很好的开始!
搜索 ODBC 的包存储库也不是特别有用。这是任何现代 Linux 系统的一个非常重要的部分!去哪儿了?!
PS:更新 help.ubuntu.com 上的文档也不错!
编辑添加:此外,此版本的 Ubuntu 上似乎不存在驱动程序文件 libmyodbc.so。
我跑
配置文件
和终端抛出错误:
0012:err:winediag:SQLDrivers No ODBC drivers could be found. Check the settings for your libodbc provider.
Run Code Online (Sandbox Code Playgroud)
如何解决这个问题?
我已pyodbc安装并尝试连接到服务器,但pyodbc找不到驱动程序。我做了以下事情:
安装pyodbc使用pip:
pip install pyodbc
Run Code Online (Sandbox Code Playgroud)运行测试脚本:
pip install pyodbc
Run Code Online (Sandbox Code Playgroud)
它返回一个空数组。
我还需要做什么?我正在 Anaconda Python 安装中的 Jupyter Notebook 中运行脚本。
我无法运行sqlcmd命令
我的操作系统 (18.04) 是
$ uname -a Linux Linux 4.15.0-23-generic #25-Ubuntu SMP Wed May 23 18:02:16 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
$ sqlcmd -S localhost -U SA -P 'password'
Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : Login timeout expired.
Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : TCP Provider: Error code 0x2749.
Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : A network-related or instance-specific error has occurred while establishing a …Run Code Online (Sandbox Code Playgroud) 我需要能够读取从 Linux 上的 Windows 系统(特别是 Ubuntu 18.04)复制的 .mdb(Microsoft Access\xc2\xa9 (JET) 文件)。我搜索了数十个网站,但找不到实现此目的的直接方法。大多数页面只讨论如何在 Windows 系统上执行此操作,当然 PHP 安装已经安装了对标准 Microsoft 数据库引擎的支持。特别是页面http://php.net/manual/en/pdo.drivers.php没有在任何描述中列出“Microsoft Access”、“JET”、“.mdb”或“.accdb”列出的驱动程序。
\n\n对于此应用程序,要求最终用户使用 mdbtools 之类的工具将 .mdb 文件转换为 MySQL/MariaDB/Postgres/SQLite/... 数据库将过于麻烦。用户界面必须能够识别包含客户现有数据的文件。然后该文件被上传到服务器,在服务器上读取其内容以初始化或更新服务器数据库,但转换并不简单,因为服务器 SQL 数据库的结构与 Access 数据库的结构不同,这主要是因为 DBA设计这个特定的 Access 数据库时假设永远不需要多个用户同时访问数据库。与大多数初学者一样,DBA 对几乎所有表都使用服务器管理或“自动增量”主键。两个数据库中的确切数字键值不会相同。我没有在任何计算机上运行 Windows 的许可证,因此我无法测试仅在 Windows 上运行的实现。
\n\n有些网站建议使用 ODBC 作为解决方法,因此我安装了 php7.2-odbc 包,如下所示:
\n\nsudo apt install php7.2-odbc\n...\nSetting up php7.2-odbc (7.2.10-0ubuntu0.18.04.1) ...\nCreating config file /etc/php/7.2/mods-available/odbc.ini with new version\nCreating config file /etc/php/7.2/mods-available/pdo_odbc.ini with new version\nProcessing triggers for libapache2-mod-php7.2 (7.2.10-0ubuntu0.18.04.1)\nRun Code Online (Sandbox Code Playgroud)\n\n请注意,要安装的软件包并不是特别明显,因为我发现的所有网页都指定安装 php5-odbc 或 php7.0-odbc,具体取决于它们发布的时间,虽然这可能是显而易见的包维护者认为驱动程序包必须与已安装的 PHP 版本相匹配,这对于只想安装“正确”包的最终用户来说 …
我目前正在尝试通过 ODBC 管理器 GUI 通过 ODBC 连接访问一些 MYSQL 和 PostgreSQL 数据库,就像我在 Windows 上一样。在四处寻找之后,我只找到了在 Ubuntu 上安装和设置 ODBC 连接的零散和旧教程。
当我在一个微妙的生产环境中工作时,有人可以帮助我提供更新的说明,所以我最不需要搞砸的事情吗?预先感谢。
根据unixODBC驱动程序页面(直接从 90 年代开始),我应该从以下位置下载 SQLite3 驱动程序:http : //www.ch-werner.de/sqliteodbc
sqliteodbc从该页面上提供的源代码构建的说明可在此处获得:http : //www.ch-werner.de/sqliteodbc/html/index.html
根据该页面,我们应该将源文件解压到一个目录中,然后运行以下命令:
1) ./configure
2) make
3)make install
但是,当我./configure在目录中运行时,出现以下错误:
configure: error: No usable SQLite header/library on this system
我该怎么办?
我正在尝试使用 pyodbc 连接到 python 中的 MSSQL 数据库。我已经按照此处的说明使用 19.04 版本安装了 MS 驱动程序。尝试通过 pip 安装 pyodbc 时,我得到sql.h: No such file or directory. 谷歌搜索告诉我我需要安装unixodbc和unixodbc-dev,但是当我尝试这样做时,我收到以下消息:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The …Run Code Online (Sandbox Code Playgroud) 我按照这些说明在 Ubuntu 22.04 上安装 ODBC 驱动程序 v18。我知道该脚本不想为 Ubuntu 22.04 安装任何内容,但我敢打赌这是一个拼写错误,因为22.04的存储库确实存在。
发出后:
sudo su
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/prod.list > /etc/apt/sources.list.d/mssql-release.list
exit
sudo apt-get update
Run Code Online (Sandbox Code Playgroud)
它没有找到版本 18:
$ apt-cache search msodbc
msodbcsql17 - ODBC Driver for Microsoft(R) SQL Server(R)
Run Code Online (Sandbox Code Playgroud)
我在这里有什么错?
回答后测试代码mizera:
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
$SERVER = "192.168.0.50";
$DATABASE = "DB";
$DRIVER = "/usr/lib/libmsodbcsql-18.so";
const USERNAME = "user";
const PASSWORD = "pswd";
try {
$db = new PDO("odbc:driver=$DRIVER;server=$SERVER;database=$DATABASE", USERNAME, PASSWORD); …Run Code Online (Sandbox Code Playgroud) 我目前正在为我们的项目构建 Ubuntu 16.04 服务器。当我尝试安装时发生错误:
sudo apt-get install php5-odbc php5-sybase tdsodbc
错误说:
Unable to locate package php5-odbc
Unable to locate package php5-sybase
我成功地将它安装在我以前的服务器 Ubuntu 14.04 上。我的问题是,如何将它安装到我最新的 Ubuntu 16.04 服务器上?
任何帮助都感激不尽。