Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Verwenden von relationalen MySQL-Datenbanken auf Gentoo

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