Восстановите дамп mysql для определенной таблицы через переполнение стека

У меня есть файл дампа таблицы MySQL (который можно посмотреть здесь: http://pastebin.com/raw.php?i=GQkjrDNz), который я хотел бы использовать для создания таблицы (с именем php_blog_archive согласно файлу дампа), используя содержимое этого файла sql.

Проблема в том, что у меня нет доступа к phpmyadmin, поэтому я могу выполнить это только с помощью команды php, я посмотрел несколько таких потоков и код, который у меня есть,

<?php
// Config
$db_user = "username";
$db_pass = "password";

exec("mysql -u $db_user -p $db_pass -h localhost databasename < restoreold.sql ");

?>

Но это не работает, это просто ничего не делает — даже не показывает никаких ошибок. Может кто-нибудь, пожалуйста, посоветуйте мне, как поступить?

0

Решение

Прежде всего команда должна быть:

<?php
// Config
$db_user = "username";
$db_pass = "password";

exec("mysql -u " . $db_user . " -p " . $db_pass . " -h localhost databasename < restoreold.sql "); // Added an space before -h

?>

И во-вторых, у вас есть права доступа для создания / редактирования / добавления файла и выполнения команды?

0

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

Я думаю, у вас есть старая проблема с паролем.

<?php
// Config
$db_user = "username";
$db_pass = "password";

exec("mysql -u " . $db_user . " -p'" . $db_pass . "' -h localhost databasename < restoreold.sql 2>&1", $output);

echo nl2br($output);

?>

Это закончится в mysql -u username -p'password' -h localhost databasename < restoreold.sql 2>&1

Последнее, что нужно сделать, — повторить сообщения об ошибках или что-то еще в HTML. Это делается через 2>&1 и $output ссылочная переменная, которая будет преобразована из nl (новые строки будут заканчиваться <br />) в HTML и повторил.

Надеюсь, что это помогает и работает.

0

По вопросам рекламы [email protected]