This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.
Please visit our production wiki at https://wiki.gentoo.org
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
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. |
test-install
|
Install testsuite for manual execution by the user |
Wenn die passenden USE-Flags gesetzt sind installieren Sie dev-db/mysql:
root #
emerge --ask mysql
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(en) - das in diesem Dokument später erwähnt wird - starten Sie den mysql Dienst:
root #
rc-service mysql start
Konfiguration
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 den MySQL root
-Zugang, der nicht in Beziehung zum Linux root
-Zugang steht.)
Um anonyme Benutzer zu säubern und Datenbanken von der Installation zu testen, starten Sie nach dem vorbereitenden Setup 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