【发布时间】:2023-02-14 12:01:31
【问题描述】:
我正在使用这段代码:
<?php
$db_user = '....';
$db_pass = '....';
$db_name = '....';
$filename = 'test.sql';
$mime = "application/text";
header( "Content-Type: " . $mime );
header( 'Content-Disposition: attachment; filename="' . $filename . '"' );
$cmd = "mysqldump -u $db_user --single-transaction --no-tablespaces --ignore-table=$db_name.mytable --add-drop-table --password=$db_pass $db_name" ;
passthru( $cmd );
exit(0);
从 PHP 页面创建数据库转储。如果我使用具有全局权限的 MySQL 用户,它会很好地工作,如果我使用具有所有权限(GRANT 除外)但仅在数据库 $db_name 上的 MySQL 用户,它就不起作用(生成一个空文件)。
如果我从控制台执行 mysqldump(以管理员用户身份通过 SSH 登录),同一用户(权限较少的用户)工作正常。
任何想法?
【问题讨论】:
-
??
$db_bame打错了吗? -
看起来这对你来说是一本有用的读物dev.mysql.com/doc/refman/8.0/en/mysqldump.html
-
@RiggsFolly 是的,抱歉,拼写错误已修复(原始脚本是正确的)。