我想创建与teradata
数据库格式php
的连接。我的代码托管在Ubuntu
服务器上,但发生了以下错误。
" odbc_connect():SQL错误:[unixODBC] [Driver Manager]数据源名称 找不到,也没有指定默认驱动程序,SQL状态为IM002 SQLConnect in / path"。
当它从本地主机正常工作时。
php代码是:
$sDriver = 'Teradata';
$sDBCName = 'ip';
$sDatabase = 'dbname';
$sDSN = "Driver={$sDriver};DBCName={$sDBCName};Database={$sDatabase};";
$connection = odbc_connect($sDSN, "username", "password");
但代码bcoz没有任何问题,它正在本地主机上工作。
答案 0 :(得分:0)
之前我也遇到过同样的问题。我以某种方式设法使用此代码修复它:
$database = 'db';
$user = 'user';
$password = 'pass';
$hostname = 'ip';
$port = portNo;
$db = odbc_connect("Driver={Your-Driver};HOSTNAME=$hostname;
Database=$database;PORT=$port;PROTOCOL=TCPIP;", $user, $password);
希望它有所帮助。
答案 1 :(得分:0)
您需要同时安装用于SQL Server的PHP ODBC扩展和Microsoft的ODBC驱动程序。
sudo apt-get install php7.2-odbc
# Note that on Ubuntu 16.04 and earlier you'll need to register this PPA first.
sudo add-apt-repository ppa:ondrej/php
导入GPG密钥:
bash curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
注册Microsoft Ubuntu存储库:
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list
# Note replace 16.04 in package URL aboive with your Ubuntu version. i.e. 14.04, 18.04, etc.
下载适用于您的Ubuntu版本的驱动程序:
bash sudo ACCEPT_EULA=Y apt-get install msodbcsql17
安装可选的bcp和sqlcmd工具:
bash sudo ACCEPT_EULA=Y apt-get install mssql-tool
<?php
$dsn = 'Driver={ODBC Driver 17 for SQL Server};Server=server.domain;Database=database_name';
$username = 'your_username';
$password = 'your_password';
if($connection = odbc_connect($dsn, $username, $password, SQL_CUR_USE_ODBC)) {
echo "Connected to the datasource.";
} else {
echo "Could not connect to the datasource.";
}