У нас работает пара Linux-серверов с общим хостом и один частный. Под ними мы запускаем лицензии cPanel / WHM.
Проблема, с которой я столкнулся:
Как я могу запустить следующую команду автоматически?
mysqlcheck -u root -p --auto-repair --check --optimize --all-databases
Проблема в том, что мне предлагается ввести пароль root, но я хотел бы запускать эту команду автоматически, и запрос пароля прерывает этот процесс.
Пожалуйста, помогите мне.
Вы можете ввести требуемый пароль либо в [client]
раздел вашего ~ / .my.cnf или дополнительный файл конфигурации, который вы указываете с помощью --defaults-extra-file=path/to/yourconfig.cnf
Для получения более подробной информации, пожалуйста, обратитесь к файлы опций сегмент документации MySQL.
Сохраните свои учетные данные root в файле, доступ к которому имеет только пользователь root. Затем просто передайте имя файла учетных данных.
mysqlcheck --defaults-file=/etc/mysql/root.cnf --auto-repair --check --optimize --all-databases
/etc/mysql/root.cnf
[client]
host = servername.domain.tld
user = backup
password = strongpassword
Это не создает серьезной уязвимости в системе безопасности, пока /etc/mysql/root.cnf
может быть прочитан только пользователем root, поскольку пользователь root может легко сбросить пароли mysql, вообще не требуя никаких учетных данных mysql.
Вы можете просто ввести пароль в командной строке. Конечно, это имеет некоторые проблемы с конфиденциальностью / безопасностью.
mysqlcheck -uroot -pPASSWORD --auto-repair --check --optimize --all-databases