MySQL ist ein beliebtes Datenbankverwaltungssystem, das für Web- und Serveranwendungen verwendet wird. Diese Anleitung stellt vor, wie MySQL auf einem Linode mit Debian 7 (Wheezy) installiert, konfiguriert und verwaltet wird.
Große MySQL-Datenbanken können eine beträchtliche Menge an Arbeitsspeicher benötigen. Aus diesem Grund empfehlen wir für solche Setups die Verwendung eines High Memory Linode.
Hinweis Dieses Handbuch wurde für Nicht-Root-Benutzer geschrieben. Befehlen, die erhöhte Berechtigungen erfordern, wird das Präfixsudo
vorangestellt . Wenn Sie mitsudo
nicht vertraut sind Befehl finden Sie in unserem Handbuch für Benutzer und Gruppen.
Bevor Sie beginnen
-
Stellen Sie sicher, dass Sie die Anleitungen „Erste Schritte“ und „Sichern Ihres Servers“ befolgt haben und der Hostname von Linode festgelegt ist.
Um Ihren Hostnamen zu überprüfen, führen Sie Folgendes aus:
hostname hostname -f
Der erste Befehl sollte Ihren kurzen Hostnamen anzeigen und der zweite Ihren vollständig qualifizierten Domänennamen (FQDN).
-
Aktualisieren Sie Ihr System:
sudo apt-get update sudo apt-get upgrade
Installieren Sie MySQL
sudo apt-get install mysql-server
Während des Installationsvorgangs werden Sie aufgefordert, ein Passwort für den MySQL-Root-Benutzer festzulegen, wie unten gezeigt. Wählen Sie ein starkes Passwort und bewahren Sie es an einem sicheren Ort auf, damit Sie später darauf zurückgreifen können.
MySQL bindet standardmäßig an localhost (127.0.0.1). Informationen zum Herstellen einer Verbindung zu Ihren Datenbanken mit lokalen Clients finden Sie in unserem Leitfaden für den MySQL-Fernzugriff.
Hinweis Es wird nicht empfohlen, uneingeschränkten Zugriff auf MySQL auf einer öffentlichen IP-Adresse zuzulassen, aber Sie können die Adresse ändern, auf der MySQL lauscht, indem Sie diebind-address
ändern Parameter in/etc/my.cnf
. Wenn Sie sich entscheiden, MySQL an Ihre öffentliche IP zu binden, sollten Sie Firewall-Regeln implementieren, die nur Verbindungen von bestimmten IP-Adressen zulassen.
Mysql-Server härten
Führen Sie die mysql_secure_installation
aus Skript, um mehrere Sicherheitsbedenken in einer standardmäßigen MySQL-Installation zu beheben.
sudo mysql_secure_installation
Sie haben die Wahl, das MySQL-Root-Passwort zu ändern, anonyme Benutzerkonten zu entfernen, Root-Anmeldungen außerhalb von localhost zu deaktivieren und Testdatenbanken zu entfernen. Es wird empfohlen, diese Optionen mit Ja zu beantworten. Sie können mehr über das Skript im MySQL-Referenzhandbuch nachlesen.
Verwendung von MySQL
Das Standardwerkzeug für die Interaktion mit MySQL ist mysql
Client, der mit dem mysql-server
installiert wird Paket. Der MySQL-Client wird über ein Terminal verwendet.
Root-Anmeldung
-
So melden Sie sich als Root-Benutzer bei MySQL an:
mysql -u root -p
-
Wenn Sie dazu aufgefordert werden, geben Sie das Root-Passwort ein. Daraufhin wird Ihnen ein Willkommens-Header und die unten gezeigte MySQL-Eingabeaufforderung angezeigt:
mysql>
-
Um eine Liste mit Befehlen für die MySQL-Eingabeaufforderung zu generieren, geben Sie
\h
ein . Sie sehen dann: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. For server side help, type 'help contents' mysql>
Erstellen Sie einen neuen MySQL-Benutzer und eine neue Datenbank
-
Im folgenden Beispiel
testdb
ist der Name der Datenbank,testuser
ist der Benutzer undpassword
ist das Passwort des Benutzers.create database testdb; create user 'testuser'@'localhost' identified by 'password'; grant all on testdb.* to 'testuser' identified by 'password';
-
Beenden Sie dann MySQL.
exit
Erstellen Sie eine Beispieltabelle
-
Melden Sie sich erneut als
testuser
an .mysql -u testuser -p
-
Erstellen Sie eine Beispieltabelle namens
customers
. Dadurch wird eine Tabelle mit einem Kunden-ID-Feld vom TypINT
erstellt für Integer (automatisch inkrementiert für neue Datensätze, verwendet als Primärschlüssel), sowie zwei Felder zum Speichern des Kundennamens.use testdb; create table customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
-
Beenden Sie dann MySQL.
exit
Setzen Sie das MySQL-Root-Passwort zurück
Wenn Sie Ihr MySQL-Root-Passwort vergessen, kann es zurückgesetzt werden.
-
Beenden Sie die aktuelle MySQL-Serverinstanz.
sudo /etc/init.d/mysql stop
-
Verwenden Sie dpkg, um den Konfigurationsprozess erneut auszuführen, den MySQL bei der Erstinstallation durchläuft. Sie werden erneut aufgefordert, ein Root-Passwort festzulegen.
sudo dpkg-reconfigure mysql-server-5.5
dpkg startet MySQL automatisch neu und Sie können sich mit mysql -u root -p
anmelden .
MySQL optimieren
MySQL Tuner ist ein Perl-Skript, 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.
-
Installieren Sie MySQL Tuner aus den Repositories von Ubuntu.
sudo apt-get install mysqltuner
-
Um es auszuführen:
mysqltuner
Sie werden nach dem Namen und Passwort des MySQL-Root-Benutzers gefragt. Die Ausgabe zeigt zwei interessante Bereiche:Allgemeine Empfehlungen und Anzupassende Variablen.
MySQL Tuner ist ein ausgezeichneter Ausgangspunkt, um einen MySQL-Server zu optimieren, aber es wäre ratsam, zusätzliche Nachforschungen für Konfigurationen anzustellen, die auf die Anwendung(en) zugeschnitten sind, die MySQL auf Ihrem Linode verwenden.
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.5 Referenzhandbuch
- PHP-MySQL-Handbuch
- Perl-DBI-Beispiele für DBD::mysql
- MySQLdb-Benutzerhandbuch
- MySQL-Tuner-Tutorial