MySQL ist ein beliebtes Datenbankverwaltungssystem, das für Web- und Serveranwendungen verwendet wird. Diese Anleitung stellt vor, wie MySQL auf einem Linode mit CentOS 6 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.
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 yum update
Installieren und starten Sie MySQL
-
Installieren Sie MySQL und teilen Sie ihm mit, auf welchen Runlevels es starten soll:
sudo yum install mysql-server sudo /sbin/chkconfig --levels 235 mysqld on
-
Dann den MySQL-Server starten:
sudo service mysqld start
MySQL bindet standardmäßig an localhost (127.0.0.1). Weitere Informationen zum Herstellen einer Verbindung zu Ihren Datenbanken über SSH 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 lesen.
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, das Sie bei der Ausführung des mysql_secure_installation-Skripts zugewiesen haben.
Daraufhin wird Ihnen die MySQL-Monitoranzeige 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' identified by 'password';
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 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 geleert und dann zurückgesetzt werden.
-
Beenden Sie die aktuelle MySQL-Serverinstanz und starten Sie sie dann mit einer Option neu, um nicht nach einem Passwort zu fragen.
sudo /etc/init.d/mysqld stop sudo mysqld_safe --skip-grant-tables &
-
Verbinden Sie sich erneut mit dem MySQL-Server mit dem MySQL-Root-Konto.
mysql -u root
-
Verwenden Sie die folgenden Befehle, um das Passwort von root zurückzusetzen. Ersetzen Sie
password
mit einem starken Passwort.use mysql; update user SET PASSWORD=PASSWORD("password") WHERE USER='root'; flush privileges; exit
-
Starten Sie dann MySQL neu.
sudo service mysqld restart
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. Je länger die Instanz läuft, desto besser wird MySQL Tuner beraten.
-
Laden Sie MySQL Tuner in Ihr Home-Verzeichnis herunter.
wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl
-
Um es auszuführen:
perl ./mysqltuner.pl
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.1 Referenzhandbuch
- PHP-MySQL-Handbuch
- Perl-DBI-Beispiele für DBD::mysql
- MySQLdb-Benutzerhandbuch