Heim  >  Artikel  >  Backend-Entwicklung  >  Gibt es kein mysql.default_socket in der Konfigurationsdatei von PHP7?

Gibt es kein mysql.default_socket in der Konfigurationsdatei von PHP7?

WBOY
WBOYOriginal
2016-12-05 13:44:232205Durchsuche

[Update] Ich habe gerade die Dokumentation überprüft und festgestellt, dass PHP7 die MySQL-Erweiterung nicht mehr unterstützt, aber wie soll ich das Problem lösen, dass ich nur den Link 127.0.0.1 und keinen Localhost-Link verwenden kann?

………………………………………………………………………………………………

Warum gibt es dieses Problem?
Ich habe ein PHP-Skript geschrieben, um eine Verbindung zur Datenbank herzustellen. Wenn die Adresse von MySQL 127.0.0.1 lautet, kann eine Verbindung hergestellt werden PHP-Warnung: mysqli::mysqli (): (HY000/2002): Keine solche Datei oder kein solches Verzeichnis in /home/wwwroot/default/cenyu/Goitems/Goitems/connect_mysql.php in Zeile 9
`

<code>$mysqli = new mysqli("127.0.0.1", "root", "root", "wordpress");
if (mysqli_connect_errno()) {
    echo 'Error: Could not connect to database. Please try again later.';
    echo "\n";
    exit;
}else{
    echo "Connect! \n";
}


$sql = "SELECT * FROM wp_amz_key;";
$result = $mysqli->query($sql);

/* close connection */
$mysqli->close();
</code>

Dann habe ich nach einigen Lösungen gesucht und hauptsächlich die Werte dieser drei Optionen in der Konfigurationsdatei php.ini geändert

<code>pdo_mysql.default_socket=/tmp/mysql.sock
mysql.default_socket=/tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock</code>

Dann tritt mein Problem auf:
Ich verwende php.ini über phpinfo. Nach dem Öffnen gibt es dort keinen Parameter sind nur die anderen beiden, und dann habe ich die Version von php.ini überprüft und festgestellt, dass es mysql.default_socket gibt. Gibt es also kein mysql.default_socket in der Konfigurationsdatei von PHP7?
mysql.default_socketMeine Fragen sind also:
1. Es gibt ein Problem mit der Datenbankverknüpfung im Skript. Kann dies mit dieser Methode gelöst werden? 2. Enthält die php.ini-Konfigurationsdatei in PHP7 kein mysql.default_socket oder stimmt etwas mit meiner Installation nicht?

Vielen Dank im Voraus

Antwortinhalt:

[Update] Ich habe gerade die Dokumentation überprüft und festgestellt, dass PHP7 die MySQL-Erweiterung nicht mehr unterstützt, aber wie soll ich das Problem lösen, dass ich nur den Link 127.0.0.1 und keinen Localhost-Link verwenden kann?

………………………………………………………………………………………………

Warum gibt es dieses Problem?

Ich habe ein PHP-Skript geschrieben, um eine Verbindung zur Datenbank herzustellen. Wenn die Adresse von MySQL 127.0.0.1 lautet, kann eine Verbindung hergestellt werden PHP-Warnung: mysqli::mysqli (): (HY000/2002): Keine solche Datei oder kein solches Verzeichnis in /home/wwwroot/default/cenyu/Goitems/Goitems/connect_mysql.php in Zeile 9`

Dann habe ich nach einigen Lösungen gesucht und hauptsächlich die Werte dieser drei Optionen in der Konfigurationsdatei php.ini geändert
<code>$mysqli = new mysqli("127.0.0.1", "root", "root", "wordpress");
if (mysqli_connect_errno()) {
    echo 'Error: Could not connect to database. Please try again later.';
    echo "\n";
    exit;
}else{
    echo "Connect! \n";
}


$sql = "SELECT * FROM wp_amz_key;";
$result = $mysqli->query($sql);

/* close connection */
$mysqli->close();
</code>

<code>pdo_mysql.default_socket=/tmp/mysql.sock
mysql.default_socket=/tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock</code>
Dann tritt mein Problem auf:

Ich verwende php.ini über phpinfo. Nach dem Öffnen gibt es dort keinen Parameter sind nur die anderen beiden, und dann habe ich die Version von php.ini überprüft und festgestellt, dass es gibt. Gibt es also kein mysql.default_socket in der Konfigurationsdatei von PHP7?
mysql.default_socketMeine Fragen sind also:
mysql.default_socket1. Es gibt ein Problem mit der Datenbankverknüpfung im Skript. Kann dies mit dieser Methode gelöst werden?
2. Enthält die php.ini-Konfigurationsdatei in PHP7 kein mysql.default_socket oder stimmt etwas mit meiner Installation nicht? Vielen Dank im Voraus


Es gibt kein

, aber es gibt

und

mysql.default_socketDa es MySQL gibt, unterstützt PHP7 die alte MySQL-Erweiterung nicht mehr.
mysqli.default_socketAllerdings stellen wir normalerweise eine Verbindung zu MySQL über IP und Port her. In diesem Fall ist es nicht erforderlich, einen Standard-Socket anzugeben. pdo_mysql.default_socketNein. Auch wenn Sie eine Verbindung zu MySQL herstellen möchten Geben Sie beim Anschließen Folgendes an:

, damit Sie sich um nichts kümmern müssen.
$db = new mysqli('127.0.0.1','root','pass','mysql',3306);
Wenn sie alle lokal sind, gibt es keinen Unterschied zwischen der Verwendung von Socket und IP-Adresse.
$db = new mysqli(null,'root','pass','mysql',null,'/path/to/mysqld.sock');
1. Überprüfen Sie, ob eine Zeile

in der MySQL-Konfigurationsdatei my.conf vorhanden ist. Fügen Sie einen #-Kommentar hinzu oder löschen Sie ihn und starten Sie MySQL neu

2. Überprüfen Sie, ob die Hosts, die durch das MySQL-Konto verknüpft werden dürfen, auf 127.0.0.1 beschränkt sind

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn