MySQL

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page MySQL and the translation is 100% complete.

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

Voir aussi