Я сделал простой инструмент CLI для управления привилегиями mysql. Он написан на PHP и использует PHP-библиотеку для общения с MySQL. Первое, что нужно инструменту, - это учетные данные mysql, потому что PHP-библиотекам нужны те, чтобы общаться с демоном mysql (возможно, на том же сервере). Это работает, НО
Мне нужно, чтобы он работал без учетных данных. На некоторых серверах я могу запустить mysql только с sudo mysql
, а затем войти в систему как root mysql. Это тоже хорошо, но мой инструмент не может это использовать.
Могу ли я обернуть свой инструмент вокруг клиента mysql вместо инициализации клиента mysql внутри инструмента?
Если я могу это сделать, инструмент работает с любым методом аутентификации:
sudo mysql | tool
mysql --login-path=~/.mysql-creds | tool
mysql -ufoo -pbar | tool
mysql -hdb.server.com -upublic | tool
Но как? Как мне заставить инструмент говорить с процессом вокруг него или вне его?
Я мог бы использовать функции PHP proc
для запуска процесса в PHP и чтения / записи оттуда, но я заинтересован в любом инструменте для любого процесса, не зная имя / местоположение процесса. (Инструмент не должен знать mysql -ufoo -pbar
или sudo mysql
.)
Это не работает:
mysql | tool
mysql < tool
tool < mysql
Или без PHP. Как бы Python сделал это? Или даже Баш?