diff --git a/.gitignore b/.gitignore index 2725d02..4f0f5e3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ +/conf/*.conf /BAK/* databases.txt* diff --git a/conf/optimize_mysql_tables.conf.sample b/conf/optimize_mysql_tables.conf.sample new file mode 100644 index 0000000..a5f10e3 --- /dev/null +++ b/conf/optimize_mysql_tables.conf.sample @@ -0,0 +1,34 @@ +# ---------------------------------------------------- +# --- +# - Parameter Settings for Script 'optimize_mysql_tables.sh' +# --- +# ---------------------------------------------------- + + +# - MySQL / MariaDB credentials +# - +# - Giving password on command line is insecure an sind mysql 5.5 +# - you will get a warning doing so. +# - +# - Reading username/password fro file ist also possible, using MySQL/MariaDB +# - commandline parameter '--defaults-file'. +# - +# - Since Version 5.6, that method is considered as insecure. +# - To avoid giving the password on command line, we use an +# - encrypted option file +# - +# - Create (encrypted) option file: +# - $ mysql_config_editor set --login-path=local --socket=/var/run/mysqld/mysqld.sock --user=backup --password +# - $ Password: +# - +# - Use of option file: +# - $ mysql --login-path=local ... +# - +# - Example +# - mysql_credential_args="--login-path=local" +# - mysql_credential_args="--defaults-file=/etc/mysql/debian.cnf" (Debian default) +# - mysql_credential_args="--defaults-file=/usr/local/mysql/sys-maint.cnf" +# - +# - Defaults to mysql_credential_args="--login-path=local" +# - +mysql_credential_args="" diff --git a/optimize_mysql_tables.sh b/optimize_mysql_tables.sh index 64d76e6..be84e05 100755 --- a/optimize_mysql_tables.sh +++ b/optimize_mysql_tables.sh @@ -1,5 +1,8 @@ #!/usr/bin/env bash +working_dir="$(dirname $(realpath $0))" +conf_file="${working_dir}/conf/optimize_mysql_tables.conf" + # - Is this script running on terminal ? # - if [[ -t 1 ]] ; then @@ -18,31 +21,18 @@ if [ -z "$mysql" ]; then fi fi -# - MySQL / MariaDB credentials -# - -# - Giving password on command line is insecure an sind mysql 5.5 -# - you will get a warning doing so. -# - -# - Reading username/password fro file ist also possible, using MySQL/MariaDB -# - commandline parameter '--defaults-file'. -# - -# - Since Version 5.6, that method is considered as insecure. -# - To avoid giving the password on command line, we use an -# - encrypted option file -# - -# - Create (encrypted) option file: -# - $ mysql_config_editor set --login-path=local --socket=/tmp/mysql.sock --user=root --password -# - $ Password: -# - -# - Use of option file: -# - $ mysql --login-path=local ... -# - -# - Example -# - mysql_credential_args="--login-path=local" -# - mysql_credential_args="--defaults-file=/etc/mysql/debian.cnf" (Debian default) -# - mysql_credential_args="--defaults-file=/usr/local/mysql/sys-maint.cnf" -# - -mysql_credential_args="--login-path=local" + +#--------------------------------------- +#----------------------------- +# Read Configurations from $conf_file +#----------------------------- +#--------------------------------------- + +if [[ -f "$conf_file" ]]; then + source "$conf_file" +fi + +[[ -z "$mysql_credential_args" ]] && mysql_credential_args="--login-path=local" if [ -n "$mysql_credential_args" ] ; then