/ / Conecte o Laravel no ubuntu ao Azure SQL Server - php, sql-servidor, ubuntu, azure, laravel

Conecte o Laravel no ubuntu ao SQL Server do Azure - php, sql-server, ubuntu, azure, laravel

Estou desenvolvendo um aplicativo laravel usando o Ubuntu como sistema operacional e meu banco de dados está em um servidor remoto do Azure. Depois de uma longa pesquisa eu estou prestes a desistir. Freetds instalados, php5-sybase etc etc.

aqui está o meu arquivo de conexão: (o padrão é definido como sqlsrv)

....

"sqlsrv" => array(
"driver" => "sqlsrv",
"host" => "myhostname:myport",
"database" => "mydatabasename",
"username" => "myusername",
"password" => "mypassword"
),

....

e o erro que estou recebendo é esse aqui:

  PDOException
SQLSTATE[01002] Adaptive Server connection failed (severity 9)

Alguma sugestão? Se vocês precisarem de mais detalhes, por favor, pergunte :)

desde já, obrigado

Respostas:

1 para resposta № 1

Eu resolvi meu problema. Estava faltando @domain no meu exemplo de string de consulta:

$pdo = new PDO("dblib:host=xxxx:1433;dbname=yyyy", "username@domain", "password");

0 para resposta № 2

Obtenho solução em A leitura do servidor falhou ao tentar se conectar ao sql-azure a partir do tsql

Editar /etc/freetds/freetds.conf arquivo e use a versão 8.0 TDS.

Se este arquivo não instalar o FreeTDS com

sudo apt-get install freetds-bin

0 para resposta № 3

Verifique estes:

  1. separador de porta é "," no windows e ":" no linux / Mac. Desde que você tem 1433, o padrão, é melhor não usá-lo
  2. definitivamente teste primeiro da linha de comando usando um destes: $ tsql -S sectionNameInFreetdsconf -U user -P pass $ tsql -H nome do host -p port -U user -P pass
  3. localize o freetds.conf no seu disco. É possível que exista em vários lugares e o tsql use um enquanto o PHP usava outro. O melhor é ligá-los em um arquivo comum e testá-los. Note que um lugar comum para esse arquivo é ~ / .freetds.conf ao lado de / etc / ou / usr / local / etc /

  4. deve haver uma seção [global] no seu arquivo freetds.conf. Coloque aí estas linhas:

    versão tds = 8.0

    tamanho do texto = 20971520

    charset do cliente = utf-8