it-swarm.com.de

CodeIgniter: Die Verbindung zu Ihrem Datenbankserver kann nicht mit den bereitgestellten Einstellungen hergestellt werden. Fehlermeldung

Ich habe CI mit dem MySQL-Treiber verwendet. Ich möchte stattdessen den MySQL-Treiber verwenden, aber sobald ich ihn geändert habe (fügen Sie einfach das "i" am Ende von MySQL hinzu und fügen Sie die Portnummer hinzu), wird die folgende Fehlermeldung angezeigt

Ein Datenbankfehler ist aufgetreten

Es kann keine Verbindung zu Ihrem Datenbankserver mit den bereitgestellten Einstellungen hergestellt werden.

Dateiname: core/Loader.php

Leitungsnummer: 232 

meine Einstellung sieht so aus:

$db['default']['hostname'] = $hostname;
$db['default']['username'] = $username;
$db['default']['password'] = $password;
$db['default']['database'] = $database;
$db['default']['dbdriver'] = 'mysqli';
$db['default']['port']     = "3306";  
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE; 

where
$hostname = 'localhost';
$username = 'myusernamegoeshere';
$password = 'mypasswordgoeshere';
$database = 'mydatabasenamegoeshere'; 

Ich benutze:

CI 2.0.2 php 5.3.4 Apache/2.2.17 (Unix) mysql 5.5.13 mysql.default_port 3306

Mache ich etwas falsch?

Vielen Dank,

48
Onema

Für mich lag das Problem in der Datei php.ini. Die Eigenschaft mysql.default_socket zeigte auf eine Datei in einem nicht vorhandenen Verzeichnis. Die Eigenschaft zeigte auf /var/mysql/mysql.sock, aber in OSX befand sich die Datei in /tmp/mysql.sock.

Nachdem ich den Eintrag in der php.ini aktualisiert und den Webserver neu gestartet hatte, wurde das Problem behoben.

29
ken

Ich denke, mit der Konfiguration von PHP stimmt etwas nicht. 
Debuggen Sie zunächst Ihre Datenbankverbindung mit diesem Skript am Ende von ./config/database.php :

...
  ...
  ...
  echo '<pre>';
  print_r($db['default']);
  echo '</pre>';

  echo 'Connecting to database: ' .$db['default']['database'];
  $dbh=mysql_connect
  (
    $db['default']['hostname'],
    $db['default']['username'],
    $db['default']['password'])
    or die('Cannot connect to the database because: ' . mysql_error());
    mysql_select_db ($db['default']['database']);

    echo '<br />   Connected OK:'  ;
    die( 'file: ' .__FILE__ . ' Line: ' .__LINE__); 

Dann sehen Sie, was das Problem ist.

102
Valeh Hajiyev

Heute bin ich in Live-Server auf dieses Problem gestoßen und habe das Problem gelöst, das diese Zeile ändert

$db['default']['db_debug'] = TRUE;

zu 

$db['default']['db_debug'] = FALSE;
48
imsyedahmed

Ich habe das Problem gelöst, indem ich mich geändert habe 

$db['default']['pconnect'] = TRUE; TO $db['default']['pconnect'] = FALSE; 

in /application/config/database.php

29
kamal

SET $db['default']['db_debug'] auf FALSE statt auf TRUE.

$db['default']['db_debug'] = FALSE;
16
Bhumi Singhal

Wenn dies alles ist, haben Sie den mysqli-Treiber möglicherweise nicht in Ihrer PHP -Konfiguration installiert oder aktiviert.

Überprüfen Sie mit phpinfo () oder in Ihrer php.ini-Datei (extension = php_mysqli ....), ob sie vorhanden ist.

3
Craig A Rodway

(CI 3) Für mich hat sich das, was funktioniert hat, verändert:

'hostname' => 'localhost' to 'hostname' => '127.0.0.1'
2
Shina

Problem gelöst!

Ich hatte meine gesamte Website zuerst in XAMMP eingerichtet, dann musste ich sie in LAMP in einer SUSE-Installation von LAMP übertragen, wo ich diesen Fehler bekam.

Das Problem ist, dass diese Parameter in der Datei database.php nicht initialisiert werden sollten . Lassen Sie Benutzername und Kennwort leer .

(Meine erste und lahmeste Vermutung wäre die alte Version von mysql, da integrierte Installationen ältere Versionen enthalten.

1
Helena

$db['default']['dbdriver'] = 'mysql' in $db['default']['dbdriver'] = 'mysqli' ändern

0
Bappi Datta

@Valeh Hajiyev ist eine großartige und klare Antwort für mysqli Treiber-Tests:

Debuggen Sie Ihre Datenbankverbindung mit diesem Skript am Ende von ./config/database.php:

/* Your db config here */ 
$db['default'] = array(
  // ...
  'dbdriver'     => 'mysqli',
  // ...
);

/* Connection test: */

echo '<pre>';
print_r($db['default']);
echo '</pre>';

echo 'Connecting to database: ' .$db['default']['database'];

$mysqli_connection = new MySQLi($db['default']['hostname'],
                                $db['default']['username'],
                                $db['default']['password'], 
                                $db['default']['database']);

if ($mysqli_connection->connect_error) {
   echo "Not connected, error: " . $mysqli_connection->connect_error;
}
else {
   echo "Connected.";
}
die( 'file: ' .__FILE__ . ' Line: ' .__LINE__);
0
MarcM

Wenn Sie dies zur Sicherung Ihres Servers verwendet haben: http://www.thonky.com/how-to/prevent-base-64-decode-hack/

Und dann den Fehler: Code Igniter needs mysql_pconnect() in order to run.

Als ich merkte, dass alle Code Igniter-Websites auf dem Server fehlerhaft waren, stellte ich fest, dass es sich nicht um ein lokalisiertes Verbindungsproblem handelte.

0
Lawrence

In meinem Fall war die Lagerung ein Problem. Meine Festplatte war voll ... Machen Sie etwas Platz in der Hardware und Ihre Website wird gut funktionieren

0
Ammad Naeem