MySQL
MySQL est un système de gestion de base de données relationnelle populaire, logiciel libre et gratuit. Il est souvent utilisé en association avec des applications web (par exemple avec les sites PHP), mais il a gagné beaucoup plus de fonctionnalités au niveau de l'entreprise depuis sa création en 1994. Une alternative est MariaDB.
Installation
Options de la variable USE
Avant d'installer dev-db/mysql, examinez attentivement les USE flags qui peuvent influencer le déploiement et les fonctionnalités. Le tableau suivant donne un aperçu des USE flags supportés par le logiciel:
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
Une fois que les bons USE flags ont été définis, installez MySQL
root #
emerge --ask dev-db/mysql
Configuration
Service
OpenRC
Pour que la base de donnée démarre automatiquement au démarrage, ajoutez le script d'initialisation de mysql au niveau d’exécution par défaut:
root #
rc-update add mysql default
Après avoir configurer la base de donnée, ce qui est expliqué plus loin sur cette page, lancez le service mysql:
root #
rc-service mysql start
Configuration préliminaire
Le paquet dev-db/mysql contient la configuration préliminaire de MySQL grâce à l'option --config
:
root #
emerge --config dev-db/mysql
Cela va créer la base de donnée, définir les bonnes permissions sur celle ci, et aider à la création d'un bon mot de passe root (ce mot de passe est pour l'utilisateur root de MySQL, ce qui n'a aucun lien avec l'utilisateur root de Linux).
Pour supprimer les utilisateurs anonymes et les base de données de test de l'installation, executez mysql_secure_installation après la configuration préliminaire:
root #
mysql_secure_installation
Configuration dans la base de donnée
Quand la base de donnée sera opérationnelle, connectez vous à celle ci en utilisant l'application client mysql.
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>
À partir ce maintenant, une session vers l'instance MySQL est ouverte, ce qui permet d'executer des requêtes et des commandes administratives.
Suppression de l'historique des commandes
Par défaut MySQL enregistre chaque action, y compris les mots de passe en clair dans son fichier d'historique.
Pour supprimer ce fichier d'historique:
root #
rm /root/.mysql_history
Un autre moyen est de désactiver totalement l'enregistrement de l'historique avec la commande suivante:
root #
ln -sf /dev/null /root/.mysql_history