GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

Häufig gestellte Fragen zur MySQL-Bereitstellung

Was ist MySQL?

MySQL ist ein schnelles, zuverlässiges, skalierbares und benutzerfreundliches relationales Open-Source-Datenbanksystem, das von Oracle unterstützt wird. MySQL Server wurde entwickelt, um geschäftskritische Produktionsanwendungen mit hoher Auslastung zu handhaben. Wenn Sie Websites oder Webanwendungen entwickeln, ist MySQL eine gute Wahl. MySQL ist eine wesentliche Komponente des LAMP-Stacks, der Linux, Apache, MySQL und PHP umfasst.

Warum den Bitnami MySQL Stack verwenden?

Der Bitnami MySQL Stack ist immer aktuell und sicher. Die Installation und Konfiguration des Stacks ist vollständig automatisiert, sodass jeder, auch diejenigen, die nicht sehr technisch versiert sind, sie leicht zum Laufen bringen kann.

Bitnami MySQL Tutorials und Dokumentation

  • Bitnami-MySQL-Seite
  • Bitnami MySQL-Benutzerhandbuch
  • Bitnami-MySQL-Änderungsprotokoll
  • So erstellen Sie eine MySQL-Datenbank und einen Benutzer
  • So ändern Sie das MySQL-Administratorkennwort
  • Zur Sicherung von MySQL
  • So führen Sie Dump- und Wiederherstellungs-MySQL-Sicherungen durch
  • So konfigurieren Sie MySQL Workbench
  • Zur Überprüfung der MySQL-Protokolldatei

Wo finde ich MySQL-Root-Anmeldeinformationen?

Die Instanz-/Knoten-/Maschinen-Root-Anmeldeinformationen werden an Ihre registrierte E-Mail-Adresse gesendet, sobald die MySQL-Instanz gestartet wird.

Die MySQL-Anmeldeinformationen werden in einer eigenständigen Datei gespeichert. Führen Sie die folgenden Schritte aus, um die Anmeldeinformationen jederzeit abzurufen:

  • Verbinden Sie sich über SSH mit root mit der Instanz/dem Knoten/der Maschine Benutzerdaten.
  • Führen Sie den folgenden Befehl aus, um Ihre Anwendungsanmeldeinformationen abzurufen:
      cat /home/bitnami/bitnami_credentials

Hinweis:Für MySQL-Benutzer ist root, kopieren Sie von oben bitte nur das Passwort

Wie man den MySQL 3306-Port mit der UFW-Firewall öffnet

Standardmäßig ist der Bitnami-MySQL-Port so konfiguriert, dass er nur in localhost zugänglich ist. Um den MySQL-Port für das offene Internet oder nur für bestimmte IP-Adressen zu öffnen, führen Sie bitte die folgenden Schritte aus.

1.Verbinden Sie sich über SSH mit root mit der Instanz/dem Knoten/der Maschine Benutzeranmeldeinformationen.

Sicherheitsrisiko Hinweis:Das Portieren dieses Datenbanknetzwerks in das öffentliche Internet ist ein erhebliches Sicherheitsrisiko. Es wird dringend empfohlen, den MySQL-Port nur für vertrauenswürdige IP-Adressen zu öffnen.

2 (a) Führen Sie den folgenden Befehl aus, um einen Port zum Internet zu öffnen:

      ufw allow mysql/tcp

2 (b) Führen Sie den folgenden Befehl aus, um einen Port zu einer bestimmten IP-Adresse zu öffnen

      ufw allow from IPADDRESS to any port 3306 proto tcp

Wie verbinde ich eine MySQL-Datenbank?

Nachdem Sie Ihre gestartet haben MySQL-Instanz.You kann mit mysql Client-Tool..

  • Verbinden Sie sich über SSH mit root mit der Instanz/dem Knoten/der Maschine Benutzerdaten.
           ssh root@<public IP>
  • Führen Sie den folgenden Befehl aus, um sich bei der MySQL-Datenbank anzumelden
         # mysql -u root -p

Sie werden aufgefordert, das Stammverzeichnis einzugeben Benutzer-Passwort…

Wie kann ich Remote-IP-Adressen-MYSQL-Zugriff zulassen?

Standardmäßig erlaubt MySQL Remoteclients nicht, sich mit der MySQL-Datenbank zu verbinden. Wenn Sie versuchen, aus der Ferne auf die MYSQL-Datenbank Ihres Servers zuzugreifen, ist es auffällig, dass Sie eine ähnliche Antwort erhalten:

“ERROR 1130: Host is not allowed to connect to this MySQL server”
Example:
$ mysql -h XXX.168.X.8 -u root -p
Enter password:
ERROR 1130: Host 'xxx.xx.x.x' is not allowed to connect to this MySQL server

Lösung :

Um diesen Fehler zu umgehen, können Sie einem bestimmten Client ip erlauben -Adresse (statische IP) für den Zugriff auf die MySQL-Datenbank, die auf einem Server ausgeführt wird. Sie sollten den folgenden Befehl auf dem Server ausführen, auf dem die MySQL-Datenbank ausgeführt wird:

 $ /opt/bitnami/mysql/bin/mysql -u root -p
Enter password:
mysql> use mysql
mysql> GRANT ALL ON *.* to root@'XXX.XXX.X.X' IDENTIFIED BY 'your-root-password';
mysql> FLUSH PRIVILEGES;

Ersetzen Sie „XXX.XXX.X.X“ im obigen Beispiel durch Ihre statische IP und Ihr Root-Passwort anstelle von „Ihr-Root-Passwort“.

Hinweis:Dies funktioniert nur, wenn Sie Ihr Internet auf einem statischen IP-basierten Dienst betreiben.

Eine statische IP-Adresse ist eine Nummer, die einem Computer von einem Internetdienstanbieter (ISP) als permanente Adresse im Internet zugewiesen wird.

Die Ausführung der obigen Befehle gewährt Zugriff auf eine bestimmte statische IP, mit der auf MYSQL remote zugegriffen werden kann.

Aktualisieren Sie außerdem die Firewall-Regeln, um sicherzustellen, dass Port Nr. 3306 in der UFW auf dem Server geöffnet ist, auf dem das mysql Datenbank.

So optimieren Sie die MySQL-Leistung mit MySQLTuner

Tools, die bei der Optimierung von MySQL helfen können:

Um festzustellen, ob Ihre MySQL-Datenbank neu konfiguriert werden muss, sehen Sie sich am besten an, wie Ihre Ressourcen jetzt funktionieren. Dies kann mit dem Top-Befehl oder mit dem Überwachungsdienst von E2E erfolgen. Zumindest sollten Sie sich mit der RAM- und CPU-Auslastung Ihres Servers vertraut machen, die Sie mit diesen Befehlen ermitteln können:

#echo [PID]  [MEM]  [PATH] &&  ps aux | awk '{print $2, $4, $11}' | sort -k2rn | head -n 20
#ps -eo pcpu,pid,user,args | sort -k 1 -r | head -20

MySQLTuner:

Das MySQLTuner-Skript bewertet Ihre MySQL-Installation und gibt dann Vorschläge zur Steigerung der Leistung und Stabilität Ihres Servers aus.

  • Zur Installation von mysqltuner , laden Sie den mysqltuner herunter .pl-Skript. Sie können es beispielsweise mit wget herunterladen :
#wget https://raw.github.com/rackerhacker/MySQLTuner-perl/master/mysqltuner.pl
  • Um einen MySQL-Server zu überwachen, der von einem Bitnami-Stack installiert wurde, übergeben Sie die Verbindungswerte wie unten gezeigt über die Befehlszeile. Beachten Sie, dass Perl auf dem System installiert sein muss.
#perl mysqltuner.pl --socket /opt/bitnami/mysql/tmp/mysql.sock
  • Das Skript gibt Ergebnisse zurück, die der folgenden Ausgabe ähneln:

MySQLTuner bietet Vorschläge zur Verbesserung der Datenbankleistung. Wenn Sie vorsichtig sind, Ihre Datenbank selbst zu aktualisieren, ist das Befolgen der Vorschläge von MySQLTuner eine der sichereren Möglichkeiten, Ihre Datenbankleistung zu verbessern.

MySQL optimieren:

Achten Sie beim Ändern der MySQL-Konfiguration auf die Änderungen und deren Auswirkungen auf Ihre Datenbank. Selbst wenn Sie den Anweisungen von Programmen wie MySQLTuner folgen, ist es am besten, ein gewisses Verständnis des Prozesses zu haben.

Die Bitnami-MySQL-Konfigurationsdatei, die an folgendem Speicherort gespeichert ist:/opt/bitnami/mysql/my.cnf.

Hinweis:Erstellen Sie vor dem Aktualisieren Ihrer MySQL-Konfiguration eine Sicherungskopie von my .cnf-Datei:

    # cp /opt/bitnami/mysql/my.cnf ~/my.cnf.backup

Best Practice empfiehlt, Änderungen einzeln vorzunehmen und den Server nach jeder Änderung zu überwachen. Sie sollten MySQL nach jeder Änderung neu starten:

Starten Sie den Server neu:

     # /opt/bitnami/ctlscript.sh restart mysql

Achten Sie beim Ändern von Werten in der Datei my.cnf darauf, dass die Zeile, die Sie ändern, nicht mit dem Präfix Raute (#) auskommentiert wurde.

key_buffer

Das Ändern des key_buffer weist MySQL mehr Speicher zu, was Ihre Datenbanken erheblich beschleunigen kann, vorausgesetzt, Sie haben den Speicher frei. Die key_buffer-Größe sollte im Allgemeinen nicht mehr als 25 Prozent des Systemspeichers beanspruchen, wenn die MyISAM-Tabellen-Engine verwendet wird, und bis zu 70 Prozent für InnoDB. Wenn der Wert zu hoch eingestellt ist, werden Ressourcen verschwendet.

Laut MySQL-Dokumentation wird für Server mit 256 MB (oder mehr) RAM mit vielen Tabellen eine Einstellung von 64 MB empfohlen. Server mit 128 MB RAM und weniger Tabellen können auf 16 MB, den Standardwert, eingestellt werden. Bei Websites mit noch weniger Ressourcen und Tabellen kann dieser Wert niedriger eingestellt werden.

max_allowed_packet

Mit diesem Parameter können Sie die maximale Größe eines sendbaren Pakets festlegen. Ein Paket ist ein einzelner SQL-Zustand, eine einzelne Zeile, die an einen Client gesendet wird, oder ein Protokoll, das von einem Master an einen Slave gesendet wird. Wenn Sie wissen, dass Ihr MySQL-Server große Pakete verarbeiten wird, erhöhen Sie diese am besten auf die Größe Ihres größten Pakets. Sollte dieser Wert zu klein eingestellt werden, erhalten Sie einen Fehler in Ihrem Fehlerprotokoll.

thread_stack

Dieser Wert enthält die Stapelgröße für jeden Thread. MySQL hält den Standardwert der thread_stack-Variablen für ausreichend für den normalen Gebrauch; Sollte jedoch ein Fehler bezüglich des thread_stack protokolliert werden, kann dieser erhöht werden.

thread_cache_size

Wenn thread_cache_size „ausgeschaltet“ (auf 0 gesetzt) ​​ist, muss für jede neue Verbindung, die hergestellt wird, ein neuer Thread erstellt werden. Beim Lösen der Verbindungen wird das Gewinde zerstört. Andernfalls legt dieser Wert die Anzahl nicht verwendeter Threads fest, die in einem Cache gespeichert werden, bis sie für eine Verbindung verwendet werden müssen. Im Allgemeinen hat diese Einstellung nur geringe Auswirkungen auf die Leistung, es sei denn, Sie erhalten Hunderte von Verbindungen pro Minute. Zu diesem Zeitpunkt sollte dieser Wert erhöht werden, damit die meisten Verbindungen über zwischengespeicherte Threads hergestellt werden können.

InnoDB-Pufferpool

Der InnoDB-Pufferpool ist der Speicherplatz, der viele In-Memory-Datenstrukturen von InnoDB, Puffern, Caches, Indizes und sogar Zeilendaten enthält. innodb_buffer_pool_size ist der MySQL-Konfigurationsparameter, der die Speichermenge angibt, die MySQL dem InnoDB-Pufferpool zuweist. Dies ist eine der wichtigsten Einstellungen in der MySQL-Hosting-Konfiguration und sollte basierend auf dem verfügbaren System-RAM konfiguriert werden.

80 % ist vielleicht ein guter Anfang und eine Faustregel. Sie möchten sicher sein, dass der Server über ausreichend freien RAM für das Betriebssystem und die normalerweise unbekannte Arbeitslast verfügt. Wie wir jedoch unten sehen können, ist es umso wahrscheinlicher, dass die Regel RAM verschwendet, je größer der Server ist. Ich denke, für die meisten Leute beginnt und endet es mit der Faustregel, hauptsächlich weil das Ändern des InnoDB-Pufferpools in aktuellen Versionen einen Neustart erfordert.

Gesamter Server-RAM-Pufferpool mit 80 % verbleibendem RAM in der Regel

1G                                  800 MB           200 MB

16G                                           13G              3G

32G                                26G              6G

64G                                51G               13G

128G                                          102G               26G

256G                                       205G                 51G

512G                              409G               103G

1024G                                     819G                 205G

Was ist also eine bessere Faustregel? Meine Regel lautet, dass Sie innodb_buffer_pool_size so groß wie möglich einstellen, ohne Swap zu verwenden, wenn das System die Produktions-Workload ausführt. Das klingt im Prinzip gut, aber auch hier erfordert es eine Reihe von Neustarts und ist möglicherweise leichter gesagt als getan.

max_connections

Dieser Parameter legt die maximale Anzahl gleichzeitiger Verbindungen fest. Es ist am besten, die maximale Anzahl von Verbindungen zu berücksichtigen, die Sie in der Vergangenheit hatten, bevor Sie diese Zahl festlegen, damit Sie einen Puffer zwischen dieser oberen Zahl und dem Wert von max_connections haben. Beachten Sie, dass dies nicht die maximale Anzahl von Benutzern auf Ihrer Website auf einmal angibt; vielmehr zeigt es die maximale Anzahl von Benutzern, die gleichzeitig Anfragen stellen.

table_cache

Dieser Wert sollte höher gehalten werden als Ihr open_tables-Wert. Um diesen Wert zu ermitteln, verwenden Sie:

ZEIGE STATUS WIE „open%“;


Cent OS
  1. MySQL-Datenbank optimieren

  2. Wie ändert man die Sortierung der MySQL-Datenbank?

  3. So kopieren Sie eine MySQL-Datenbank

  4. Verbessern Sie das Cachen von MySQL-Datenbanken

  5. So installieren Sie den MySQL-Datenbankserver unter CentOS

Wie man mit PHP eine Verbindung zu MySQL herstellt

So entfernen Sie doppelte Zeilen in MySQL

Tabellen in einer MySQL-Datenbank auflisten

MySQL-Datenbankserver

Wie man eine Datenbank in MySQL erstellt

MySQL-Übersicht