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

    Problema Mysql con app php

    Ciao a tutti sto avendo problemi di connessione mysql con una mia app php.

    Mettendola su un server in produzione ottengo,durante la navigazione il seguente errore mysql


    Warning: mysqli::mysqli() [mysqli.mysqli]: (HY000/2003): Can't connect to MySQL server on 'localhost' (10048) in C:\htdocs\ ... \ conn_db.php on line 30
    Connection to Database failed. Conflict with other Mysql session.
    Please contact your system administrator.

    Cosa può essere?


    In locale,sul mio pc non ho mai avuto problemi.


    In php tutte le volte che accedo al db apro la connessione quindi la chiudo. non uso connessioni persistenti.


    grazie!


    HELP!!!!!

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Un po' di codice?
    Senza sapere cosa hai scritto non ti si può aiutare.

  3. #3
    Ciao non saprei davvero cosa postarti, nel senso che durante la navigazione a volte effettua le operazioni su db e altre volte si è bloccato dando quell'errore.

    Quello che posso dirti,è che in fase di caricamento e salvataggio della form vengono effettuate operazioni di lettura e scrittura del DB.

    Tutte le volte che accedo al db, richiamo i metodi della mia classe di connessione (open e close alla fine).

    Può essere legato in qualche modo ai troppi accessi al db??? o un problema di time out? Uso , in face di document ready anche chiamate ajax.

    mi sembra strano, in locale non ho di questi problemi. Una volta sul db in produzione posso entrarci solo io.

    Una cosa però: come ti dicevo in produzione vi è un istanza mysql e ho caricato + db. Inoltre sono presenti 3 siti web che usano la mia stessa classe di connessione , ovviamente specifico per ognuno di essi un nome DB diverso.Per comodità l'utenza è la stessa (ho impostato ovviamenti i permessi di scrittura e lettura per ogni db per quell'utente).


    Il sistema operativo è windows server 2003.
    Non so dove sbattere la testa anche perchè non ho mai avuto quel problema prima d'ora


    Secondo te, se apro e chiudo connessioni continuamente posso esserci problemi? Non apro mai + di una connessione alla volta. una volta che faccio l'operazione la chiudo

    ti ringrazio per il supporto!

  4. #4
    posta un pò di codice della pagina in cui c'è un'errore...la segnalazione dice che si trova nella pagina "conn_db.php" alla riga 30 che credo ci sarà la connessione al database visto il nome e la segnalazione CONNECTION TO DATABASE FAILED. Molto probabilmente perchè credo che tu abbia lasciato la pagina la stessa che hai provato in locale...Usando come host LOCALHOST invece di usare l'host del tuo sito. Controlla un po'.

  5. #5
    può essere un problema di connessioni? come faccio a verificare se la connessione è ancora aperta prima che ne apro una nuova?

  6. #6
    A meno che non utilizzi connessioni persistenti esse vengono chiuse automaticamente al termine dell'esecuzione dello script.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  7. #7
    intendi che vorresti aprire una connessione ad un database diverso?? per quella c'è
    Codice PHP:
    mysql_close(); 

  8. #8
    Grazie per il supporto (anche morale) ... diciamo che sono in m.rda ... :-(

    Riassumendo ecco cosa ho fatto:

    Il sistema è un windows 2003, dove ho installato apache/mysql/php (non ho usato xamp o similari,ho installato i singoli servizi).

    Quindi ho trasferito siti web e db dal mio pc al server. Dopo aver configurato opportunamente php.ini e httpd.conf, ho richiamato le applicazioni.

    Le app sono raggiungibili dall'esterno tramite ip pubblico (purtroppo non posso darvi l'ind.)

    Ogni app è raggiungibile nel seguente modo:

    http://mio_ind/sito1
    http://mio_ind/sito2
    http://mio_ind/sito3


    e così via......

    Non vi è un dominio che punta all'ip.

    Ogni sito ha autenticazione php session.

    Ogni sito è associato a 2 db (le app usano 2 db ,con funzionalità diverse).

    esempio:

    sito1_db1 e sito1_db2
    sito2_db1 e sito2_db2
    ....

    Come dicevo,per comodità ho creato 2 utenti mysql ,uno per db. queste utenze le richiamo dalla mia classe di connessione.

    Ho già provato a creare utenti diversi per ogni db e associarli in modo univoco al db, ma il problema persiste.

    Ho testato l'applicazione da remoto e in locale sul server: stesso errore.
    Ho provato a modificare my.cnf aumentando a 1000 le connection,ma il problema persiste.

    Ho provato a sostituire localhost con 127.0.0.1. Niente.

    ecco la classe
    codice:
    class db1_database{
       // parametri per la connessione al database
        private $host = "localhost";
        private $username = "user1";
        private $password = "mia_passw";
        private $database = "DB1";
    
        public function get_host(){
            return $this->host;
        }
        public function get_username(){
            return $this->username;
        }
        public function get_password(){
            return $this->password;
        }
        public function get_database(){
            return $this->database;
        }
    
        public function connect_db(){
                 $temp= new mysqli($this->host,$this->username,$this->password, $this->database);
                 if (mysqli_connect_errno()) {
                     echo "Connection to Database failed. Conflict with other Mysql session.
     Please contact your system administrator.";
                    //printf("Connect failed: %s\n", mysqli_connect_error());
                    exit();
                 }
                 return $temp;
        }
        // funzione per la chiusura della connessione (da richiamare alla fine di ogni procedura)
        public function disconnect_db($mysqli){
            //mysql_close(); //chiude la connessione al database
            $mysqli->close() or die ("Check your DB connection!");
        }
    
    
        //controlla se esiste la connessione al database
        public function check_connection($mysqli){
            if ($mysqli->connect_errno) {
                // notifica in caso di errore
                //echo "Errore in connessione al DBMS: ".mysqli_connect_error();
                return true;
            }
            else {
                // notifica in caso di connessione attiva
                //echo "Connessione avvenuta con successo";
                return false;
            }
        }
        //esegue più query contemporaneamente
        public function exec_multi_query($mysql_obj,$query){
            return $mysql_obj->multi_query($query);
        }
    }

    In questo momento sto creando una virtual machine con windows 2008....
    vediamo....

  9. #9
    la riga 30 è inerente a:
    .... if (mysqli_connect_errno()) { .....


    L'errore non è immediato, ma dopo aver navigato un pò

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 © 2025 vBulletin Solutions, Inc. All rights reserved.