Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Errore collegamento a mssql server

    Ciao,
    sto cercando di collegarmi ad un database Microsft Sql Server attraverso PDO.
    La configurazione sono di due server sulla stessa rete intranet, uno con windows (se non sbaglio 2000 server) e uno con ubuntu (quello che gestisco io). Da ubuntu dovrei leggere una vista presente sul db microsoft, ma non riesco a collegarmi, ricevo errori, il codice che utilizzo è questo
    Codice PHP:
    try {
                
    $hostname='192.168.1.100';
                
    $dbname 'SERVER-NTS/SQLNTS';
                
    $username 'my_user';
                
    $pw 'my_pwd';

                
    $this->dbh = new PDO ("dblib:host=$hostname:$port;dbname=$dbname","$username","$pw");
            } catch (
    PDOException $e) {
                echo 
    "Failed to get DB handle: " $e->getMessage() . "\n";
                exit;
            } 
    l'errore che ricevo è "Failed to get DB handle: could not find driver"
    Non avendo esperienza con database Microsoft non capisco bene come interfacciarmi, chi gestisce tale db mi ha fornito quelle informazioni , ma non riesco a collegarmi. Qualcuno sa darmi chiarimenti?

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Ti sta dicendo che il driver per la gestione di MSSQL non è installato o non è abilitato.

    Driver ed istruzioni:
    https://www.microsoft.com/en-us/down....aspx?id=20098

  3. #3
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Ti sta dicendo che il driver per la gestione di MSSQL non è installato o non è abilitato.

    Driver ed istruzioni:
    https://www.microsoft.com/en-us/down....aspx?id=20098
    in pratica è un eseguibile da installare nel server windows?

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Sì, quello è per server MS, se usi Apache trovi i link nella documentazione ufficiale di PDO (leggere sempre la documentazione ufficiale!)
    http://php.net/manual/en/ref.pdo-sqlsrv.php

  5. #5
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Sì, quello è per server MS, se usi Apache trovi i link nella documentazione ufficiale di PDO (leggere sempre la documentazione ufficiale!)
    http://php.net/manual/en/ref.pdo-sqlsrv.php
    quindi dovrei fari installare l'exe nel server windows e poi io configurare correttamente pdo nel server linux? oppure è sufficiente configurare linux?

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    I tuoi script vengono interpretati dal server su cui si trovano, quindi se ho ben capito su Ubuntu, sul quale come webserver ci sarà Apache, è quello che devi configurare per la connessione al database.

    Se ti servono informazioni specifiche sulla configurazione, chiedi nella sezione Server -> Apache.

  7. #7
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    I tuoi script vengono interpretati dal server su cui si trovano, quindi se ho ben capito su Ubuntu, sul quale come webserver ci sarà Apache, è quello che devi configurare per la connessione al database.

    Se ti servono informazioni specifiche sulla configurazione, chiedi nella sezione Server -> Apache.
    si esatto, gli scritp sono su ubuntu e interpretati da ubuntu, invece il database a cui collegarsi è su un altro server. Io mi immaginavo un po come il collegamento con MySql, in cui metto l'host, il nome, la password e posso lanciare le query.

  8. #8
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Sì, è così, ma MySQL è supportato nativamente, quindi di default il driver è attivo, per questo non devi fare niente, per MSSQL non è detto che lo sia e se non lo è lo devi configurare tu.

  9. #9
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Sì, è così, ma MySQL è supportato nativamente, quindi di default il driver è attivo, per questo non devi fare niente, per MSSQL non è detto che lo sia e se non lo è lo devi configurare tu.
    ok perfetto, grazie mille, cerco di installare e configurare questo driver.

  10. #10
    Ciao, scusami se ripristino questa vecchia discussione, ma sto ancora cercando di configurare un php per la connessione con SQL Server, questa è la configurazione.
    Server windows:
    è installato Sql Express 2008 r2

    Server linux
    è installato ubuntu 16 con php 7

    questo è lo script che utilizzo per la connesione
    codice:
    $serverName = 'NOME_SERVER\ISTANZASQL';
    $connectionOptions = array(
        "Database" => 'nome_db',
        "Uid" => 'username',
        "PWD" => 'password');
    $conn = sqlsrv_connect($serverName, $connectionOptions);
             if($conn===FALSE)
                print_r(sqlsrv_errors());exit;
    e questo è l'errore che ricevo
    codice:
    Error information: 
    SQLSTATE: HYT00
    Code: 0
    Message: [unixODBC][Microsoft][ODBC Driver 13 for SQL Server]Login timeout expired
    SQLSTATE: 08001
    Code: 10057
    Message: [unixODBC][Microsoft][ODBC Driver 13 for SQL Server]TCP Provider: Error code 0x2749
    SQLSTATE: 08001
    Code: 10057
    Message: [unixODBC][Microsoft][ODBC Driver 13 for SQL Server]A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online.
    I due computer si trovano sulla stessa rete, riesco a pingare entrambi, quindi si vedono. Chi ha configurato la rete mi ha detto che non ci sono limitazioni a livello di router o di firewall, tutti i pacchetti possono transitare, chi ha configurato il server windows con su SQL mi dice che devo collegarmi senza utilizzare una porta, ma semplicemente con il nome del server\istanza. Questo non avviene, non riesco a collegarmi proprio, l'errore che ricevo è quello sopra. Ho provato a fare un mapping delle porte (tramite ubuntu) sull'ip di windows e non vedo una porta aperta con il servizio ms-sql-s, come se quel servizio non è in ascolto.
    Ho provato da riga di comando a lanciare tsql -S IP -U username, quello che ricevo è questo
    codice:
    locale is "it_IT.UTF-8"
    locale charset is "UTF-8"
    using default charset "UTF-8"
    Error 20009 (severity 9):
            Unable to connect: Adaptive Server is unavailable or does not exist
            OS error 111, "Connection refused"
    There was a problem connecting to the server
    Secondo voi, il problema è di windows/sql express che rifiuta la connessione (di un firewall o altro), oppure è un'errata configurazione che ho fatto io? secondo il mio punto di vista, il problema è su windows. Avete in mente prove che posso fare? considerate che sulla macchina windows non posso installare nulla

    grazie.
    Ultima modifica di jeck; 23-05-2017 a 18:53

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.