Jawaban:
Tiga (3) Opsi
OPSI 1: Dari dalam klien mysql
mysql -uroot -A -e"SHOW GLOBAL VARIABLES;" > MySQLCurrentSettings.txt
Ini akan menangkap semua opsi ke dalam file teks.
OPSI 2: Dari baris perintah Linux
ps -ef | grep mysqld | grep -v grep
Ini akan menampilkan opsi mysqld dimulai dengan set dari mysqld_safe
OPSI 3: Tanyakan Server Secara Langsung
mysqld --help --verbose
Di bagian bawah layar 'mysqld --help --verbose', Anda akan melihat pengaturan saat ini mysqld diambil dari my.cnf atau secara default adalah.
Instruksi ini untuk persediaan mariadb pada centos 7.1.
Berikut ini cara mem-backup atau mereplikasi pengaturan mesin saat ini ke instalasi baru, sekarang atau masa depan.
Pada mesin dari mana kita ingin menyalin pengaturan, kita dapat menjalankan:
/usr/libexec/mysqld --help --verbose > mysql_current_settings.txt
Di komputer lain, kita dapat menginstal mariadb-server dan menjalankan:
/usr/libexec/mysqld --help --verbose > mysql_default_settings.txt
Lalu kami menempatkan kedua file ke dalam satu direktori, yang dalam contoh ini adalah "/ a /".
Lalu kita jalankan:
comm -3 <(sort /a/mysql_current_settings.txt) <(sort /a/mysql_default_settings.txt)
Jika tidak ada output, maka kedua file tersebut identik. Yang berarti bahwa semua pengaturan, pada kedua mesin, pada standarnya.
Jika ada beberapa output, maka beberapa baris tidak akan berlekuk, sementara beberapa baris akan berlekuk.
Baris yang tidak di indentasi hanya ada di file pertama, yang di sini adalah /a/mysql_current_settings.txt.
Baris indentend hanya ada di file kedua, yang di sini adalah /a/mysql_default_settings.txt.
Sekarang kita tahu semua pengaturan, kecuali untuk beberapa pengaturan yang diatur pada baris perintah yang memulai mysqld. Pengaturan ini dapat berasal dari file /etc/my.cnf, atau /etc/my.cnf.d/*, atau skrip khusus, atau alias, dll. Dalam kasus apa pun, kita dapat melihatnya dengan perintah berikut:
ps -ef | grep mysqld
Sekarang kita tahu sangat sedikit pengaturan yang harus kita ubah pada instalasi baru untuk mengkonfigurasinya sebagai yang lama.
Berikut ikuti beberapa detail lainnya.
Pada centos 7.1, perintah berikut menunjukkan semua pengaturan saat ini, kecuali untuk beberapa pengaturan yang ditetapkan pada baris perintah yang memulai mysqld:
/usr/libexec/mysqld --help --verbose
Secara total, ini menunjukkan:
di bagian pertama, pengaturan yang bisa kita gunakan sebagai parameter pertama setelah "mysqld" ketika kita memulainya;
di bagian kedua, pengaturan ditetapkan pada waktu kompilasi;
di bagian ketiga, pengaturan saat ini.
Bahkan jika baris terakhir dari outputnya mengatakan: untuk melihat nilai apa yang digunakan server MySQL, ketik:
mysqladmin variables -uroot -p
perintah itu tidak menunjukkan, fe, bind-address, bahkan jika kita mengubahnya di /etc/my.cnf dan restart mysql.
Juga perintah berikut ini menunjukkan banyak pengaturan tetapi tidak "bind-address":
mysql -uroot -p -e"SHOW VARIABLES;"
Perhatikan bahwa, pada centos 7.1, mysqld tidak dalam $ PATH.
Inilah cara favorit saya untuk menghasilkan my.cnf saat ini:
{ 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
Namun, ini tidak bekerja dengan andal untuk Mac OS X.
Ini akan menghasilkan log variabel bersih, berkomentar, siap untuk mengimpor ke my.cnf Anda.
Sumber asli: http://www.askapache.com/mysql/view-mysql-variables-my-cnf.html
mysqld -V|sed 's,^.*\(V.*\)\ for.*,\1,'
. Tidak yakin itu penting karena saya pikir klien dan server diinstal bersama. Apa tujuan {{{1
dan 1}}}
?