我正在开发一个必须连接到现有MS SQL Server数据库的Laravel 5.1项目。我的项目目前在使用Apache 2.4.18的Ubuntu 16.04 LTS服务器上。我在机器上安装了用于SQL Server的Microsoft ODBC Linux驱动程序(版本13.0.0.0),并使用sqlcmd命令手动测试:
sqlcmd -S DatabaseIPAddress -U DatabaseUsername
这一切都很好。我可以登录数据库没问题。然而,当我使用php artisan迁移我的数据库时,它不起作用。我收到错误:
[PDOException]
could not find driver
我已将此作为database.php中的设置:
'sqlsrv' => [
'driver' => 'sqlsrv',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'prefix' => '',
],
数据库登录信息保存在.env文件中,SQL Server设置为默认值:
'default' => env('DB_CONNECTION', 'sqlsrv'),
有关可能发生的事情的任何帮助?我在网上看了很多帖子(here和here)。人们对不同类型的数据库有类似的问题。他们不得不改变他们的php.ini文件的配置,添加一些关于扩展的行。也许是沿着这些方向的东西我在php.ini文件中尝试了一些我认为可能有用的东西,例如:
; This is the extension for the Microsoft SQLSRV ODBC Driver.
; The driver seems to be located at this file path.
extionsion=/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.0.so.0.0
重新启动,测试,但无济于事。我一直在这个墙上砸了一下墙。任何帮助将不胜感激。感谢。
答案 0 :(得分:2)
按照以下步骤执行sudo apt-get install php5-mssql
更新 /etc/freetds/freetds.conf
[global]
# TDS protocol version
; tds version = 4.2
tds version = 8.0
client charset = UTF-8`
将此行添加到 php.ini
mssql.charset = "UTF-8"