我正在使用 php 来备份 mysql 数据库。 在本地主机上它工作正常,命令运行如下:
$cmd = 'D:\xampp\mysql\bin\mysqldump --user=' .$db['username'].' --password= '. $db['password'] .' --host='.$db['host'].' '.$db['database'].' > '.FCPATH.$filename;
system($cmd,$return);
这在本地主机上运行完美,但我想在 godaddy 主机上运行,所以我不知道如何找到 mysqldump 路径或如何存储 .sql 文件。
在本地我的应用程序目录是这个
http://localhost/backup_app/
我用来存储的文件夹是
http://localhost/backup_app/DB_Backup但我给出的存储 .sql 文件的实际路径使用的是 FCPATH
即 D:\xampp\htdocs\backup_app
我不知道如何在 godaddy 上生成此路径。
有人能帮忙吗?
最佳答案
您已标记为使用 codeigniter 提问。一旦我这样做了。我正在与您分享代码,希望它适用于您的 CI 版本。
在2.x版本中,CI dbforge类不支持mysqli
驱动,所以我将驱动设置为mysql
。
$db['group_one']['dbdriver'] = 'mysql';
在常量中定义存储文件的路径。
define('ADMIN_DOCS_PATH','adminDocs/');
备份并将文件存储在磁盘上的代码。
public function getDatabaseBackup()
{
$this->db = $this->load->database('group_one', TRUE);
$this->load->dbutil();
$doc_name = 'DatabaseBackup'.date('YmdHis').'.sql.zip';
$prefs = array(
'tables' => array(), // Array of tables to backup.
'ignore' => array(), // List of tables to omit from the backup
'format' => 'zip', // gzip, zip, txt
'filename' => $doc_name, // File name - NEEDED ONLY WITH ZIP FILES
'add_drop' => TRUE, // Whether to add DROP TABLE statements to backup file
'add_insert' => TRUE, // Whether to add INSERT data to backup file
'newline' => "\n" // Newline character used in backup file
);
$backup =& $this->dbutil->backup($prefs);
$this->load->helper('file');
write_file('./'.ADMIN_DOCS_PATH.$doc_name, $backup);
}
试试这个,同时确认您的 CI 版本及其对 dbforge
类的支持以下载数据库转储。
关于php - 使用 php Codeigniter 的 mysql 转储,godaddy 的服务器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41390770/