簡體   English   中英

命令恢復PHP中的MySQL數據庫備份

[英]command restore mysql db backup in php

還原db文件時出現問題。 以下是我用來還原的腳本:

<?php
$dbhost   = "localhost";
$dbuser   = "root";
$dbpwd    = "";
$dbname   = "fhc_test";

$dumpfile = "backup/".$_GET['id'].".sql";

exec("C://xampp/mysql/bin/mysql -u $dbuser -p $dbpwd $dbname < $dumpfile");
?>

以下是用於執行備份的腳本:

<?php
$dbhost   = "localhost";
$dbuser   = "root";
$dbpwd    = "";
$dbname   = "fhc";
date_default_timezone_set("Asia/Singapore");

$dumpfile = "backup/". $dbname . "_" . date("d-m-Y_H_i_s") . ".sql";

exec("C://xampp/mysql/bin/mysqldump --opt --host=$dbhost --user=$dbuser --password=$dbpwd $dbname > $dumpfile");
?>

備份文件時沒有發現問題。 當我復制n並將備份內容手動粘貼到數據庫中時,它可以完美還原而不會出現問題。 但是,當我運行還原腳本以執行還原時,文件會保持加載很長時間而不會提示任何錯誤。 因此,我停止了加載,並且似乎沒有表還原到數據庫中。

當我嘗試從cmd運行腳本時,還原可以完全而快速地完成。 在這種情況下,我將備份文件放在與mysql.exe相同的文件夾中

這是我在cmd中執行命令的方式:

C:\xampp\mysql\bin>mysql -u root -p  fhc_test < fhc.sql

誰能幫助我找出還原腳本中存在的問題? bcos我已經做了很多檢查,而且代碼似乎沒有錯誤。 我是否必須從c:/ xampp / mysql / bin復制mysql.exe文件,並將其放入放置php文件的文件夾中?

我真的不知道該怎么辦。

鑒於您使用:

C:\xampp\mysql\bin>mysql -u root -p  fhc_test < fhc.sql

它是您嘗試使用的用戶root。 不是phpmyadmin用戶。 因此,您需要使用-p選項來提供root用戶的密碼。

在PowerShell中運行命令,您將收到此錯誤:

The '<' operator is reserved for future use.

您顯然是在Windows中運行此程序,因此需要將語法調整為:

Get-Content fhc.sql | mysql -u root -p  fhc_test

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM