MySQL ist ein beliebtes Datenbankverwaltungssystem, das für Web- und Serveranwendungen verwendet wird. Diese Anleitung stellt vor, wie MySQL auf einem Linode mit Ubuntu 12.04 LTS (Precise Pangolin) installiert, konfiguriert und verwaltet wird.
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.
Voraussetzungen
-
Wenn Sie dies noch nicht getan haben, erstellen Sie ein Linode-Konto und eine Compute-Instanz. Sehen Sie sich unsere Leitfäden Erste Schritte mit Linode und Erstellen einer Compute-Instanz an.
-
Folgen Sie unserem Leitfaden zum Einrichten und Sichern einer Compute-Instanz, um Ihr System zu aktualisieren und Ihren Hostnamen zu konfigurieren. Möglicherweise möchten Sie auch die Zeitzone festlegen, ein eingeschränktes Benutzerkonto erstellen und den SSH-Zugriff härten.
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 sollte Ihren vollständig qualifizierten Domänennamen (FQDN) anzeigen, falls Sie einen zugewiesen haben.
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 sicheres 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). Weitere Informationen zum Herstellen einer Verbindung zu Ihren Datenbanken über einen SSH-Tunnel 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 das Skript mysql_secure_installation aus, 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, die Root-Datenbankanmeldung 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.
MySQL bereitstellen
Das Standardwerkzeug für die Interaktion mit MySQL ist mysql
client, der mit dem mysql-server
installiert wird Paket.
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, das Sie bei der
mysql_secure_installation
zugewiesen haben Skript wurde ausgeführt.Daraufhin wird Ihnen die MySQL-Monitor-Eingabeaufforderung angezeigt:
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.0.45 Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. 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';
Sie können diesen Vorgang abkürzen, indem Sie den Benutzer while erstellen Datenbankberechtigungen zuweisen:
create database testdb; grant all on testdb.* to 'testuser' identified by 'password';
-
Beenden Sie 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 service 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
Sie können sich jetzt wieder 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. Die Empfehlungen des MySQL-Tuners werden umso präziser, je länger die Instanz läuft.
-
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 dem 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 zusätzliche Forschung wird für Konfigurationen empfohlen, 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.1 Referenzhandbuch
- PHP-MySQL-Handbuch
- Perl-DBI-Beispiele für DBD::mysql
- MySQLdb-Benutzerhandbuch