Ich bin ein wenig frustriert mit einem Problem, das ich in einer Systemmigration von AWS zu GCE habe.Verbindung zu mysql db über PHP in GCE-Instanz mit Ubuntu nicht möglich
Ich habe eine ec-2-Instanz läuft auf Amazon Web-Services, perfekt funktioniert und konfiguriert.
Das Problem ist, dass Google einen 100.000 $ Kredit in einem speziellen Plan für Startups anbietet, der CEO meines Unternehmens bittet um eine Migration, also hier bin ich.
Ich habe alle laufen und fast vollständig in einer ubuntu 14.04 LTS-Instanz konfiguriert, sagte ich fast, weil ich eine einfache Aufgabe wie eine Verbindung zu einer MySQL-db nicht erreichen kann :(, und ich denke, ich vermisse etwas Irgendwo und mein Verstand wird beleidigt, also brauche ich deine Hilfe.
Erstens, ich habe nur dieses Problem auf Remote-Server, ich habe es wie hundert Mal in lokalen getestet, und natürlich in aws, wo es ist derzeit in Produktion Zustand, so dass ich habe keine Ahnung, was oder wo genau das Problem ist
Mein GCE config:.
OS: Ubun tu 14.04 LTS HHD: 30GB Persistenz ssd Platte CPU: 2x RAM: 7,5 GB Zone: Europa-West1-c statische IP-
Also, ich installierte Lampe und phpMyAdmin, alle Arbeiten wie ein Charme. Ich deaktiviere den Root-Zugriff von Remote-Clients auf Mysql db, konfigurierte PHP und Apache-Module.
Die Web-App ist eine Rest Api, basierend auf PHP (Slim), die, wie ich gerade sagte, jetzt an AWS arbeitet.
Wenn ich an und Endpunkt, die keine Daten aus der Datenbank abrufen müssen aufrufen, funktioniert es gut, das Problem kommt, wenn der Endpunkt aufgerufen versucht, auf die Datenbank zuzugreifen. In diesem Fall antwortet die Anfrage niemals, sie lädt für immer, bis ich die Anfrage abbringe. Es ist irgendwie komisch, weil ich alle Daten über phpmyadmin manipulieren kann, was auf die db genauso zugreift wie mysqli.
Wenn ich die Protokolle überprüft habe, ist nichts auf ihnen gedruckt. Nur wenn ich den Host-Parameter "locahost" ändere, wird ein Protokoll ausgegeben, das besagt: "No mysql db on XXX.XXX.XXX.XXX" (IP).
config.php
define('DB_USERNAME', 'user');
define('DB_PASSWORD', 'pass');
define('DB_HOST', 'localhost');
define('DB_NAME', 'db_name');
DbConnect.php
function connect() {
include_once dirname(__FILE__) . '/Config.php';
// Connecting to mysql database
$this->conn = new mysqli(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME);
// Check for database connection error
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
/* change character set to utf8 */
if (!$this->conn->set_charset("utf8")) {
echo "Error loading character set utf8: " . $this->conn->error;
}
// returing connection resource
return $this->conn;
}
Jede Hilfe ist willkommen!
ich vergaß zu erwähnen, aber ich habe auch versucht, die IP zu binden.Das Ergebnis ist ähnlich: Für localhost wartet es auf die nie kommende Antwort, und wenn ich versuche, über die gebundene IP in der my.cnf-Datei zuzugreifen, dasselbe Ergebnis, wartet unendliche Antwort. Wenn ich die IP-Adresse entbinde, gibt es eine Ausnahme zurück, "No db in der Adresse XXX.XXX ........." Danke trotzdem ;-) – SvOzMaS
Haben Sie keine Firewall, die Verbindungen zu Ihrem Server blockiert? wie ufw oder iptables? https://help.ubuntu.com/12.04/serverguide/firewall.html – ironpilot