Иногда есть задача заскриптовать создание базы\пользователя 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 — генерирует название для пользователя и базы.
Тем самым, название пользователя и базы данных у нас будут одинаковыми.