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 mysqlAPPNAME_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émonetc/mysql/my.cnf : configuration par défautetc/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 mysqlvar/log/mysql/ : ici se trouvent les logs du serveur mysqlvar/lib/mysql/ : ici se trouvent les données binaires de la base de donnéesusr/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)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
bin/pkgi-mysqltools init, pkgi s'en charge pour vous grâce à un script postinst.
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.
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
innodb-heavy-4G
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