MySQL
MySQL ist ein populäres relationales Datenbank Management System und Freie Software. Es wird oft in Verbindung mit Web-Applikationen (so wie viele PHP Seiten) verwendet, hat aber viele weitere Funktionen auf Unternehmensebene seit seinem Start im Jahr 1994 hinzubekommen. Eine alternative Abspaltung ist MariaDB.
Installation
USE-Flags
Vor der Installation von dev-db/mysql sollten Sie sorgsam die USE-Flags prüfen, die die Paket-Verwendung und Funktionen beeinflussen. Die folgende Tabelle gibt einen Überblick zu den vom Paket unterstützten USE-Flags:
USE flags for dev-db/mysql A fast, multi-threaded, multi-user SQL database server
+perl
|
Add optional support/bindings for the Perl language |
+server
|
Build the server program |
cjk
|
Add CJK support for InnoDB fulltext search using app-text/mecab |
client-libs
|
Build the client libraries from the server package instead of the C Connector packages (not recommended) |
cracklib
|
Support for cracklib strong password checking |
debug
|
Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces |
experimental
|
Build experimental features aka "rapid" plugins |
jemalloc
|
Use dev-libs/jemalloc for memory management |
latin1
|
Use LATIN1 encoding instead of UTF8 |
numa
|
Enable NUMA support using sys-process/numactl (NUMA kernel support is also required) |
profiling
|
Add support for statement profiling (requires USE=community). |
router
|
Build the MySQL router program |
selinux
|
!!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur |
static
|
!!do not set this during bootstrap!! Causes binaries to be statically linked instead of dynamically |
static-libs
|
Build static versions of dynamic libraries as well |
systemtap
|
Build support for profiling and tracing using dev-debug/systemtap |
tcmalloc
|
Use the dev-util/google-perftools libraries to replace the malloc() implementation with a possibly faster one |
test
|
Install upstream testsuites for end use. |
Emerge
Sobald die richtigen USE-Flags gesetzt sind, installieren Sie MySQL:
root #
emerge --ask dev-db/mysql
Konfiguration
Dienste
OpenRC
Um die Datenbank(en) automatisch beim Booten zu starten, fügen Sie das Init-Skript zum Standard-Runlevel hinzu:
root #
rc-update add mysql default
Nach der Konfiguration der Datenbank, die später in diesem Dokument beschrieben wird, starten Sie den mysql Dienst:
root #
rc-service mysql start
Vorbereitende Konfiguration
Das Paket dev-db/mysql erledigt die vorbereitende Konfiguration von MySQL durch die Option --config
:
root #
emerge --config dev-db/mysql
Dies erstellt eine Datenbank, setzt die passenden Zugriffsberechtigungen dafür und unterstützt bei der Erzeugung eines guten root-Passwortes. (Dies geschieht für das MySQL root-Konto, welches nicht in Beziehung zum Linux root-Konto steht.)
Um anonyme Benutzer zu säubern und Datenbanken von der Installation zu testen, starten Sie nach dem vorbereitenden Einrichten mysql_secure_installation:
root #
mysql_secure_installation
Datenbankeigene Konfiguration
Wenn die Datenbank in Gang ist, verbinden Sie sich mit ihr über die mysql Client-Anwendung.
user $
mysql -u root -p -h localhost
Enter root password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 to server version: 5.5.1 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>
Von diesem Punkt an ist eine Sitzung mit der MySQL-Instanz geöffnet, die es erlaubt Anfragen und administrative Befehle zu bedienen.
Befehlshistorie löschen
Standardmässig loggt MySQL jede Aktion, das Zurücklassen von Klartext-Passworten in seiner Historiendatei eingeschlossen.
Um die Historiendatei zu entfernen:
root #
rm /root/.mysql_history
Alternativ können Sie das History-Logging hiermit permanent deaktivieren:
root #
ln -sf /dev/null /root/.mysql_history