mysql

Ce module permet de lancer un serveur mysql.

Packages debian nécessaires : mysql-server, et mysql-client

Module pkgi nécessaires : logrotate (facultatif)

Variables spécifiques pkgi :

  • APPNAME_MYSQL_PORT : port d'écoute du serveur mysql
  • APPNAME_MYSQL_LISTEN_INTERFACE : interface réseau d'écoute du démon (0.0.0.0 signifie qu'on écoute sur toutes les interfaces réseaux)

Structure du module :

  • etc/init.d/mysql : lanceur du démon
  • etc/mysql/my.cnf : configuration par défaut
  • etc/mysql/conf.d/ : configuration utilisateur (placez ici les directives permettant de surcharger la config par défaut de mysql)
  • etc/logrotate.d/mysql-server : config de logrotate pour archiver les logs générés par mysql
  • var/log/mysql/ : ici se trouvent les logs du serveur mysql
  • var/lib/mysql/ : ici se trouvent les données binaires de la base de données
  • usr/bin/mysql : permet de vous connecter à votre base de données sans avoir a taper de mdp.
  • usr/bin/mysqldump : permet de faire un dump de votre base de données sans avoir a taper de mdp.
  • bin/pkgi-mysqltools : boite à outils spécifique pkgi pour effectuer divers opérations sur la base (cf section suivante)

Script pkgi-mysqltools

Il est vivement conseillé pour des raisons de sécurité d'indiquer un mot de passe root sur les serveur mysql de production avec la commande suivante

bin/pkgi-mysqltools rootpassword XXX

(remplacez XXX par votre mot de passe)

D'autres outils sont disponibles comme la possibilité de faire un dump de votre base ou de donner des droits d'accès par IP à votre serveur. Voici la liste complète :

   -q  | -query                           - Permet de lancer la commande mysql (placez vos paramètres à la suite)
   -i  | -init                            - Initialisation de la base
   -rp | -rootpassword                    - Réglage du mot de passe root (passé en paramètre)
   -d  | -dump                            - Permet de lancer la commande mysqldump (placez vos parametres à la suite)
   -b  | -backup                          - Équivalent de dump mais sans dumper les tables systèmes
   -bc | -backup-cron [install|uninstall] - (Dés)installation d'un script de sauvegarde mysql quotidien en crontab
   -mr | -makeroot                        - Permet de donner les droits de connexion à un hostname passé en paramètre
   -t  | -copyto                          - Copie d'une ou de toutes les bases sur un autre serveur 
   -f  | -copyfrom                        - Récupération d'une ou de toutes les bases venant d'un autre serveur

Depuis la version 2.33 il n'est plus nécessaire de lancer la commande bin/pkgi-mysqltools init, pkgi s'en charge pour vous grâce à un script postinst.

Script pkgi-mysqlbackup

Sans argument, ce script fait un dump dans un fichier compressé dont le nom est dump-nomdujourdelasemaine.sql.gz, ce qui fait qu'on peut l'appeler chaque jour sans dépasser 7 sauvegarde.

De plus, un lien dump-latest.sql.gz est créé vers le fichier du dernier dump.

Comment optimiser "à la louche" votre serveur mysql ?

Depuis pkgi 2.32, la variable APPNAME_OPTIMIZATION vous propose trois grands profils qui sont supportés par ce module mysql et un profil particulier :

  • normal : pour une utilisation minimale de ressource par mysql (< 64 Mo).
  • big : pour un système possédant au moins 512 Mo de RAM dédié au serveur MySQL.
  • huge : pour un système possèdant de 1 Go à 2 Go de RAM dédié au serveur MySQL.

Et un profil spécifique à mysql :

  • innodb-heavy-4G : pour les gros systèmes possédant 4 Go de RAM qui font tourner principalement MySQL avec uniquement des tables InnoDB et qui exécute des requêtes complexes avec peu de connexions

Assurez vous que votre système est architecturé en conséquence pour utiliser ces options, en particulier innodb-heavy-4G

Configurer un phpmyadmin

Le plus simple est d'utiliser le module phpmyadmin qui permet d'installer et configurer un phpmyadmin au sein même de votre application. Cependant, vous pouvez également configurer un phpmyadmin distant en suivant les informations suivantes.

Il faut tout d'abord donner les droits de connexions de votre phpmyadmin (hébergé sur votre machine par exemple) vers votre serveur mysql :

bin/pkgi-mysqltools -mr gully.ads.intra.inist.fr

Remarque : remplacez gully.ads.intra.inist.fr par le nom de la machine hébergeant phpmyadmin. Vous pouvez également donner les droits à tout le monde avec

bin/pkgi-mysqltools -mr %

Il reste ensuite a configurer phpmyadmin. Voici un exemple de configuration à placer dans votre fichier de config phpmyadmin (config.inc.php) :

$i++;
$cfg['Servers'][$i]['host']          = 'ida.intra.inist.fr'; // MySQL hostname or IP address
$cfg['Servers'][$i]['port']          = '50102';          // MySQL port - leave blank for default port
$cfg['Servers'][$i]['socket']        = '';          // Path to the socket - leave blank for default socket
$cfg['Servers'][$i]['connect_type']  = 'tcp';    // How to connect to MySQL server ('tcp' or 'socket')
$cfg['Servers'][$i]['extension']     = 'mysql';     // The php MySQL extension to use ('mysql' or 'mysqli')
$cfg['Servers'][$i]['compress']      = FALSE;       // Use compressed protocol for the MySQL connection
$cfg['Servers'][$i]['auth_type']     = 'cookie';    // Authentication method (config, http or cookie based)?
$cfg['Servers'][$i]['verbose']       = 'ida (monappli)';          // Verbose name for this host - leave blank to show the hostname
 
modules/mysql.txt · Dernière modification: 2011/05/20 10:56 par parmentf
Recent changes RSS feed Powered by PHP Hosted on Debian Driven by DokuWiki Deployed by Pkgi