Я выполнял некоторые ответы на stackoverflow.
Мой odbc. ini (находится в /etc/odbc.ini)
[MSSQL] Description = MS SQL Server Driver = /usr/local/lib/libtdsodbc.so Server = host.of.the.server UID = myusername PWD = mypassword ReadOnly = No Port = 1433 tds version = 8.0
Мой odbcinst.ini
[FreeTDS] Description = FreeTDS driver Driver = /usr/local/lib/libtdsodbc.so Setup=/usr/lib/odbc/libtdsS.so FileUsage = 1 UsageCount = 1
Оба этих файла сначала пустые. Я просто скопировал ответ из других потоков.
Мой freetds.conf
# Global settings are overridden by those in a database # server specific section [global] # TDS protocol version ; tds version = 8.0 # 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 # A typical Sybase server [egServer50] host = symachine.domain.com port = 5000 tds version = 8.0 # A typical Microsoft server [egServer70] host = ntmachine.domain.com port = 1433 tds version = 7.0
Я использую Laravel. Теперь, после того как я использовал
php artisan migrate
Я получил ошибку: PDOException: SQLSTATE 01002 Не удалось подключиться к адаптивному серверу (серьезность 9)
Некоторые из ответов stackoverflow: Возможная причина – версия TDS.
Поэтому я использовал tsql -C
Version: freetds v0.91 freetds.conf directory: /usr/local/etc MS db-lib source compatibility: yes Sybase binary compatibility: no Thread safety: yes iconv library: yes TDS version: 5.0 iODBC: no unixodbc: yes SSPI "trusted" logins: no Kerberos: no
Я использую Ubuntu 16
Попробуйте изменить версию TDS на 7.0 или 8.0 и убедитесь, что у вас установлены следующие пакеты:
php5-sybase php5-odbc