You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
proxysql/scripts/add_mysql_user.sh

69 lines
1.9 KiB

#!/bin/sh
# Add a MySQL user:
#
# - Optional params (with default values): '{ "admin_host": "127.0.0.1", "admin_port": 6032, "admin_user": "radmin", "admin_pass": "radmin" }'
# - Mandatory params: '{ "user": "username", "pass": "password" }'
if [ ! "$1" ]; then
echo { \"err\": \"Missing required argument specifying username/password\" }
exit 0
fi
# Script mandatory parameters
user=$(echo $1 | jq '.user')
pass=$(echo $1 | jq '.pass')
# Script optional parameters
admin_host=$(echo $1 | jq -r '.admin_host')
admin_port=$(echo $1 | jq -r '.admin_port')
admin_user=$(echo $1 | jq -r '.admin_user')
admin_pass=$(echo $1 | jq -r '.admin_pass')
to_runtime=$(echo $1 | jq -r '.to_runtime')
if [ $user == "null" ]; then
echo { \"err_code\": 1, \"res\": \"Missing required argument username\" }
exit 0
fi
if [ $pass == "null" ]; then
echo { \"err_code\": 1, \"res\": \"Missing required argument password\" }
exit 0
fi
# Optional parameters
if [ $admin_host == "null" ]; then
admin_host="127.0.0.1"
fi
if [ $admin_port == "null" ]; then
admin_port=6032
fi
if [ $admin_user == "null" ]; then
admin_user="radmin"
fi
if [ $admin_pass == "null" ]; then
admin_pass="radmin"
fi
if [ $to_runtime == "null" ]; then
to_runtime=0
fi
cmd_output=$(mysql -h$admin_host -P$admin_port -u$admin_user -p$admin_pass -e \
"INSERT OR REPLACE INTO mysql_users (username,password) VALUES ($user, $pass)" 2> $(pwd)/add_mysql_err.log)
if [ $? -eq 0 ]; then
if [ $to_runtime -eq 1 ]; then
cmd_output=$(mysql -h$admin_host -P$admin_port -u$admin_user -p$admin_pass -e \
"LOAD MYSQL USERS TO RUNTIME" 2> $(pwd)/add_mysql_err.log)
fi
if [ $? -eq 0 ]; then
echo { \"err_code\": 0, \"res\": \"$cmd_output\" }
else
echo { \"err_code\": 1, \"res\": \"$(cat $(pwd)/add_mysql_err.log)\" }
fi
else
echo { \"err_code\": 1, \"res\": \"$(cat $(pwd)/add_mysql_err.log)\" }
fi
rm $(pwd)/add_mysql_err.log