Создание базы данных в cPanel API bash консоль

Иногда есть задача заскриптовать создание базы\пользователя mysql на аккаунте в cPanel. Для этого будем использовать API cPanel.

Чтобы создать базу данных на аккаунте, используем команду:

uapi Mysql create_database name="yourlogin_NAMEDATABASE"

Где, yourlogin — логин аккаунта cPanel, NAMEDATABASE — название базы после логина аккаунта.

Чтобы создать пользователя базы данных и задать ему пароль, используем команду:

uapi Mysql create_user name="yourlogin_NAMEUSER" password="PASS"

Где, yourlogin — логин аккаунта cPanel, NAMEUSER — название пользователя после логина аккаунта, PASS — пароль создаваемого пользователя.

Чтобы добавить созданного пользователя в нашу базу, выполняем команду:

uapi Mysql set_privileges_on_database user="yourlogin_NAMEUSER" database="yourlogin_NAMEDATABASE" privileges=ALL%20PRIVILEGES

Можно так же написать скрипт, который будет создавать всё автоматически и выводить базу данных, пользователя и пароль. Пример скрипта:

#!/bin/bash
LOGIN_HOST="yourlogin"
PASS_DB=$(cat /dev/urandom | tr -d -c '0-9a-zA-Z' | fold -w 10 | head -1)
NAME_DB=$(cat /dev/urandom | tr -d -c '0-9a-zA-Z' | fold -w 8 | head -1)

#create database
uapi Mysql create_database name="$LOGIN_HOST"_"$NAME_DB"

#create user
uapi Mysql create_user name="$LOGIN_HOST"_"$NAME_DB" password="$PASS_DB"

#privileges
uapi Mysql set_privileges_on_database user="$LOGIN_HOST"_"$NAME_DB" database="$LOGIN_HOST"_"$NAME_DB" privileges=ALL%20PRIVILEGES

clear

echo "$LOGIN_HOST"_"$NAME_DB" 
echo "$PASS_DB"

Разберём переменные:

LOGIN_HOST — содержим имя пользователя аккаунта cPanel.
PASS_DB — генерирует пароль для пользователя базы данных.
NAME_DB — генерирует название для пользователя и базы.

Тем самым, название пользователя и базы данных у нас будут одинаковыми.

Goodhoster.NET
Добавить комментарий