2016-03-09 3 views
0

У меня есть попытка подключиться к базе данных MSSQL с помощью PHP в системе Linux.У вас возникли проблемы с sqlsrv на CentOS 7. Ищете помощь или, возможно, альтернативу ODBC

Использование tsql -S <dbConfig> или tsql -H <dbHost> успешно соединяется с базой данных (с учетными данными пользователя, конечно). Тем не менее, использование одного и того же хоста и конфигурации в PDO возвращает неспособность подключиться к ошибке хост-адаптера.

Вопрос, кажется, живет где-то между PHP PDO, и я принимаю freetds.

отладки выглядит следующим образом:

PDOException in Connector.php line 55: 
SQLSTATE[01002] Adaptive Server connection failed (MYHOST.database.windows.net) (severity 9) 
     in Connector.php line 55 

at PDO->__construct('dblib:host=MYHOST.database.windows.net;dbname=RecipeDB;charset=utf8', '[email protected]', 'MYPASSWORD', array('0', '2', '0', false)) in Connector.php line 55 
at Connector->createConnection('dblib:host=MYHOST.database.windows.net;dbname=RecipeDB;charset=utf8', array('driver' => 'sqlsrv', 'host' => 'MYHOST.database.windows.net', 'database' => 'RecipeDB', 'username' => '[email protected]', 'password' => 'MYPASSWORD', 'charset' => 'utf8', 'prefix' => '', 'name' => 'remoteRecipes'), array('0', '2', '0', false)) in SqlServerConnector.php line 32 
at SqlServerConnector->connect(array('driver' => 'sqlsrv', 'host' => 'MYHOST.database.windows.net', 'database' => 'RecipeDB', 'username' => '[email protected]', 'password' => 'MYPASSWORD', 'charset' => 'utf8', 'prefix' => '', 'name' => 'remoteRecipes')) in ConnectionFactory.php line 61 
at ConnectionFactory->Illuminate\Database\Connectors\{closure}() 

ответ

0

Кажется, я бы удалось удалить строку, содержащую [global] из моего файла /etc/freetds.conf. Как только я заменил его, PDO смог позвонить в базу данных.

Ниже то, что он выглядит для меня:

[global] 
# TDS protocol version 
; tds version = 4.2 
tds version = 8.0 
client charset = UTF-8 

# Whether to write a TDSDUMP file for diagnostic purposes 
# (setting this to /tmp is insecure on a multi-user system) 
    dump file = /tmp/freetds.log 
    debug flags = 0xffff 

# Command and connection timeouts 
; timeout = 10 
; connect timeout = 10 

# If you get out-of-memory errors, it may mean that your client 
# is trying to allocate a huge buffer for a TEXT field. 
# Try setting 'text size' to a more reasonable limit 
text size = 64512 

[testConnection] 
    host = MYHOST.database.windows.net 
    port = 1433 
    tds version = 8.0 

 Смежные вопросы

  • Нет связанных вопросов^_^