Réponses:
Trois (3) options
OPTION 1: Depuis le client mysql
mysql -uroot -A -e"SHOW GLOBAL VARIABLES;" > MySQLCurrentSettings.txt
Cela capturera toutes les options dans le fichier texte.
OPTION 2: à partir de la ligne de commande Linux
ps -ef | grep mysqld | grep -v grep
Cela affichera les options que mysqld a commencé avec comme défini dans mysqld_safe
OPTION 3: Demandez directement au serveur
mysqld --help --verbose
Au bas de l'affichage 'mysqld --help --verbose', vous verrez les paramètres actuels mysqld chargés depuis my.cnf ou par défaut.
Ces instructions concernent le stock de mariadb sur centos 7.1.
Voici comment sauvegarder ou répliquer les paramètres actuels d'une machine vers une nouvelle installation, présente ou future.
Sur la machine à partir de laquelle nous voulons copier les paramètres, nous pouvons exécuter:
/usr/libexec/mysqld --help --verbose > mysql_current_settings.txt
Sur une autre machine, nous pouvons installer mariadb-server et exécuter:
/usr/libexec/mysqld --help --verbose > mysql_default_settings.txt
Ensuite, nous mettons les deux fichiers dans un répertoire, qui dans cet exemple est "/ a /".
Ensuite, nous courons:
comm -3 <(sort /a/mysql_current_settings.txt) <(sort /a/mysql_default_settings.txt)
S'il n'y a pas de sortie, les deux fichiers sont identiques. Ce qui signifie que tous les paramètres, sur les deux machines, sont par défaut.
S'il y a une sortie, alors certaines lignes ne seront pas indentées, tandis que certaines lignes seront indentées.
Les lignes non indentées sont présentes uniquement dans le premier fichier, qui est ici /a/mysql_current_settings.txt.
Les lignes de retrait ne sont présentes que dans le deuxième fichier, qui est ici /a/mysql_default_settings.txt.
Maintenant, nous connaissons tous les paramètres, à l'exception de certains paramètres définis dans la ligne de commande qui a démarré mysqld. Ces paramètres peuvent provenir de fichiers /etc/my.cnf, /etc/my.cnf.d/*, ou d'un script personnalisé, ou d'un alias, etc. Dans tous les cas, nous pouvons les voir avec la commande suivante:
ps -ef | grep mysqld
Maintenant, nous connaissons les quelques paramètres que nous devons modifier sur une nouvelle installation pour la configurer comme l'ancienne.
Voici quelques autres détails.
Sur centos 7.1, la commande suivante affiche tous les paramètres actuels, à l'exception de certains paramètres définis dans la ligne de commande qui a démarré mysqld:
/usr/libexec/mysqld --help --verbose
Au total, cela montre:
dans la première partie, les réglages que nous pouvons utiliser comme premier paramètre après "mysqld" au démarrage;
dans la deuxième partie, les paramètres définis lors de la compilation;
dans la troisième partie, les paramètres actuels.
Même si la dernière ligne de sa sortie indique: pour voir quelles valeurs utilise un serveur MySQL en cours d'exécution, tapez:
mysqladmin variables -uroot -p
cette commande n'affiche pas, fe, bind-address, même si nous la modifions dans /etc/my.cnf et redémarrons mysql.
La commande suivante affiche également de nombreux paramètres, mais pas "bind-address":
mysql -uroot -p -e"SHOW VARIABLES;"
Notez que, sur centos 7.1, mysqld n'est pas dans $ PATH.
Voici ma façon préférée de générer un my.cnf actuel:
{ echo -e "# MYSQL VARIABLES {{{1\n##\n# MYSQL `mysql -V|sed 's,^.*\(V.*\)\, for.*,\1,'` - By: `logname`@`hostname -f` on `date +%c`\n##"; for l in {a..z}; do echo '#'; mysql -NBe "SHOW GLOBAL VARIABLES LIKE '${l}%'" | sed 's,\t,^= ,' | column -ts^ | tr "\n" '@' | eval $(echo "sed '" "s,@\("{a..u}{a..z}"\),\n\n\1,;" "'") | eval $(echo "sed '" "s,@\(innodb_"{a..z}{a..z}"\),\n\n\1,;" "'") | tr '@' "\n" | sed 's,^,# ,g'; done; echo -e "#\n##\n# MYSQL VARIABLES }}}1"; } | tee ~/mysql-variables.log
Cependant, cela ne fonctionne pas de manière fiable pour Mac OS X.
Cela produira un journal de variables propre, commenté, prêt à être importé dans votre my.cnf.
Source d'origine: http://www.askapache.com/mysql/view-mysql-variables-my-cnf.html
mysqld -V|sed 's,^.*\(V.*\)\ for.*,\1,'
. Je ne suis pas sûr que cela soit important car je pense que le client et le serveur sont installés ensemble. Quel est le but de {{{1
et 1}}}
?