MySQL ist ein relationales Datenbankmanagementsystem (RDBMS), das als Backend für unzählige Web- und Serveranwendungen verwendet wird. Ursprünglich 1995 veröffentlicht, bleibt es eine beliebte Wahl für Entwickler als Datenbankserver.
Bevor Sie mit diesem Leitfaden beginnen, vergewissern Sie sich bitte, dass Sie die in unserem Einrichten und Sichern einer Compute-Instanz beschriebenen Schritte ausgeführt haben. Stellen Sie außerdem sicher, dass Sie als Root-Benutzer bei Ihrem System angemeldet sind.
Installieren von MySQL
Führen Sie den folgenden Befehl aus, um sicherzustellen, dass Ihr Paket-Repository auf dem neuesten Stand ist:
emerge --sync
Der folgende Befehl aktualisiert alle Pakete und ihre Abhängigkeiten auf dem System. Wenn Sie diesen Befehl nicht ausführen möchten, können Sie ihn überspringen oder emerge --update world
verwenden :
emerge --update --deep world
Geben Sie den folgenden Befehl aus, um MySQL zu installieren:
emerge dev-db/mysql
Sobald dieser Vorgang abgeschlossen ist, müssen Sie auch die von MySQL verwendeten Datenbanken installieren. Geben Sie den folgenden Befehl aus:
mysql_install_db
Sie können den MySQL-Server jetzt zum ersten Mal starten:
/etc/init.d/mysql start
Sie müssen mysql_secure_installation
ausführen um ein Root-Passwort festzulegen und Ihre MySQL-Instanz zu sichern. Geben Sie den folgenden Befehl aus:
mysql_secure_installation
Wenn Sie möchten, dass MySQL beim Booten des Systems ausgeführt wird, geben Sie den folgenden Befehl ein:
rc-update add mysql default
MySQL konfigurieren
Standardmäßig bindet MySQL an localhost. Wenn Sie möchten, dass MySQL auf einer öffentlichen IP lauscht, können Sie die bind-address
ändern Wert in /etc/mysql/my.cnf
um die IP-Adresse Ihres Linode wiederzugeben. Es wird nicht empfohlen, uneingeschränkten Zugriff auf MySQL auf einer öffentlichen IP-Adresse zuzulassen, und Sie sollten möglicherweise Firewall-Regeln implementieren, um nur Datenverkehr von bestimmten IP-Adressen zuzulassen.
Die oben aufgeführten Vorschläge sind möglicherweise nicht für alle Umgebungen geeignet, stellen Sie also sicher, dass Ihre Anwendung keine anderen Einstellungen erfordert. Weitere Informationen zur Konfiguration von MySQL finden Sie in den zusätzlichen Ressourcen im Abschnitt „Weitere Informationen“ dieses Handbuchs.
Jedes Mal, wenn Sie die Einstellungen in /etc/mysql/my.cnf
ändern , müssen Sie den MySQL-Server neu starten. Geben Sie den folgenden Befehl aus:
/etc/init.d/mysql restart
Verwendung von MySQL
Die meiste Interaktion mit MySQL erfolgt über mysql
Befehlszeilenprogramm. Geben Sie den folgenden Befehl aus, um mit MySQL zu interagieren:
mysql -u root -p
Wenn Sie dazu aufgefordert werden, geben Sie das Passwort ein, das Sie während der mysql_secure_installation
erstellt haben Prozess. Sobald Sie dies getan haben, werden Sie mit dem MySQL-Prompt begrüßt:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.1.51-log Gentoo Linux mysql-5.1.51
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
Sollten Sie Ihr MySQL-Root-Passwort zu einem späteren Zeitpunkt vergessen, können Sie es mit folgender Befehlsfolge zurücksetzen:
/etc/init.d/mysql stop
mysqld_safe --skip-grant-tables --skip-networking &
mysqladmin -u root
Nachdem Sie sich angemeldet haben, geben Sie die folgenden Befehle an der MySQL-Eingabeaufforderung ein:
USE mysql;
UPDATE user SET PASSWORD=PASSWORD("CHANGEME") WHERE User='root';
FLUSH PRIVILEGES;
exit
Um eine Liste der verfügbaren Befehle anzuzeigen (nicht SQL-Syntax), geben Sie \h
aus am MySQL-Prompt:
List of all MySQL commands:
Note that all text commands must be first on line and end with ';'
? (\?) Synonym for `help'.
clear (\c) Clear command.
connect (\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set statement delimiter. NOTE: Takes the rest of the line as new delimiter.
edit (\e) Edit command with $EDITOR.
ego (\G) Send command to mysql server, display result vertically.
exit (\q) Exit mysql. Same as quit.
go (\g) Send command to mysql server.
help (\h) Display this help.
nopager (\n) Disable pager, print to stdout.
notee (\t) Don't write into outfile.
pager (\P) Set PAGER [to_pager]. Print the query results via PAGER.
print (\p) Print current command.
prompt (\R) Change your mysql prompt.
quit (\q) Quit mysql.
rehash (\#) Rebuild completion hash.
source (\.) Execute an SQL script file. Takes a file name as an argument.
status (\s) Get status information from the server.
system (\!) Execute a system shell command.
tee (\T) Set outfile [to_outfile]. Append everything into given outfile.
use (\u) Use another database. Takes database name as argument.
charset (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets.
warnings (\W) Show warnings after every statement.
nowarning (\w) Don't show warnings after every statement.
Lassen Sie uns eine Datenbank erstellen und ihr einen Benutzer zuweisen. Führen Sie die folgenden Befehle an der MySQL-Eingabeaufforderung aus:
CREATE DATABASE testdb;
CREATE USER 'testuser' IDENTIFIED BY 's8723hk2';
GRANT ALL PRIVILEGES ON testdb.* TO 'testuser';
exit
Melden wir uns nun wieder als testuser
beim MySQL-Client an und erstellen Sie eine Beispieltabelle mit dem Namen „Kunden“. Geben Sie die folgenden Befehle aus:
mysql -u testuser -p
USE testdb;
CREATE TABLE customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
Dadurch wird eine Tabelle mit einem Kunden-ID-Feld vom Typ INT für Integer (automatisch inkrementiert für neue Datensätze, verwendet als Primärschlüssel) sowie zwei Feldern zum Speichern des Kundennamens erstellt. Natürlich möchten Sie wahrscheinlich viel mehr Informationen als diese über einen Kunden speichern, aber es ist dennoch ein gutes Beispiel für einen häufigen Fall.
MySQL optimieren
MySQL Tuner ist ein nützliches Tool, das eine Verbindung zu einer laufenden Instanz von MySQL herstellt und Konfigurationsempfehlungen basierend auf der Arbeitslast bereitstellt. Idealerweise sollte die MySQL-Instanz mindestens 24 Stunden in Betrieb gewesen sein, bevor der Tuner ausgeführt wird. Je länger die Instanz läuft, desto besser wird MySQL Tuner beraten.
Geben Sie den folgenden Befehl ein, um MySQL Tuner zu installieren:
emerge dev-db/mysqltuner
Um MySQL Tuner auszuführen, geben Sie einfach ein:
mysqltuner
Bitte beachten Sie, dass dieses Tool dazu dient, Konfigurationsvorschläge zu liefern und ein ausgezeichneter Ausgangspunkt ist. Es wäre ratsam, zusätzliche Nachforschungen anzustellen, um Konfigurationen basierend auf den Anwendungen, die MySQL verwenden, zu optimieren.
Weitere Informationen
Weitere Informationen zu diesem Thema finden Sie in den folgenden Ressourcen. Obwohl diese in der Hoffnung bereitgestellt werden, dass sie nützlich sind, beachten Sie bitte, dass wir nicht für die Genauigkeit oder Aktualität extern gehosteter Materialien garantieren können.
- MySQL 5.1 Referenzhandbuch
- PHP-MySQL-Handbuch
- Perl-DBI-Beispiele für DBD::mysql
- MySQLdb-Benutzerhandbuch