PHP proc_open — подключиться к mysqldump работает, но не к mysql

У меня проблема в том, что mysql не позволяет мне подключаться в одном случае, но в другом это делает.

я использую proc_open подключиться к MySQL через mysqldump введите команду и введите пароль через канал.

Интересно, что этот вызов работает, как ожидалось, тогда как другой не ….

$command = "mysqldump --no-data -h 127.0.0.1 -u root -p dbname > /var/www/html/dump.sql"$process = proc_open($command, [
0 => ["pipe", "r"],
1 => ["pipe", "w"],
2 => ["pipe", "w"]
], $pipes);

if (is_resource($process))
{
fwrite($pipes[0], $this->password);
fclose($pipes[0]);
...

следующий звонок не работает — ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES),

Я действительно не понимаю этого, потому что установление соединения должно быть одинаковым для mysql а также mysqldump, Я могу заверить, что пароль правильный, потому что он получен из файла конфигурации, и я уже проверил отладку.

если я выполняю ту же команду непосредственно в оболочке, у меня нет проблем с подключением, введя пароль. но через php это не работает.

$command = "mysql -h 127.0.0.1 -u root -p -D dbname < /var/www/html/dump.sql"$process = proc_open($command, [
0 => ["pipe", "r"],
1 => ["pipe", "w"],
2 => ["pipe", "w"]
], $pipes);

if (is_resource($process))
{
fwrite($pipes[0], $this->password);
fclose($pipes[0]);
...

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector