您的位置:首頁技術文章
文章詳情頁

運維 - 阿里云服務器 mysqldump導出sql文件,在導入的過程中報權限錯誤

瀏覽:90日期:2022-06-21 09:03:56

問題描述

寫了一個php腳本做定時復制數據庫的工作(1. 不要問我為什么不用linux 2.不要問我為什么不用主從同步。都是業務需要 我也沒辦法。)

<?phperror_reporting(0);$DB = [ ’remote’=>['dsn'=>'mysql:host=xxx.xxx.xxx.xxx;dbname=dbname','ip'=>'xxx.xxx.xxx.xxx','username'=>'username','password'=>'password' ], ’local’=>['dsn'=>'mysql:host=xxx.xxx.xxx.xxx;dbname=dbname','ip'=>'xxx.xxx.xxx.xxx','username'=>'username','password'=>'password', ]];$conf = [ ’mysql_root’=>’D:wampbinmysqlmysql5.6.17bin’, ’dump_folder’=>’G:’, ’db_name’=>’db_name’, ’table_name’=>’table_name’];$pdo = new PDO($DB['remote']['dsn'], $DB['remote']['username'], $DB['remote']['password']);do { $result = $pdo->query('select max(id) as max from '.$conf[’table_name’])->fetchAll(); $max = $result[0][’max’]; // 獲取最大的id // 通過mysqldump導出sql文件 $dump_shell = $conf[’mysql_root’].’mysqldump -h’.$DB[’local’][’ip’].’ -u’.$DB[’local’][’username’].’ -p’.$DB[’local’][’password’].’ -t fuscent --table ’.$conf[’table_name’].’ --default-character-set=utf8 --single-transaction --skip-add-locks -w'id>’.$max.’'>’.$conf[’dump_folder’].’’.$conf[’table_name’].’.sql’; exec($dump_shell); // mysql < xxx.sql 導入sql文件 $source_shell = $conf[’mysql_root’].’mysql -h’.$DB[’remote’][’ip’].’ -u’.$DB[’remote’][’username’].’ -p’.$DB[’remote’][’password’].’ ’.$conf[’db_name’].’ -e'’.$conf[’dump_folder’].’’.$conf[’table_name’].’'.sql'’; exec($source_shell); sleep(60); // 等待*秒鐘} while (true);

無論在導入的過程中使用

source xxx.sql

或者

mysql < xxx.sql

的方法,都會報出以下錯誤

ERROR 1227 (42000) at line 18: Access denied; you need (at least one of) the SUPER privilege(s) for this operation

請問這是為什么啊?我的權限也沒有問題啊。有人遇到過這種情況嗎?

問題解答

回答1:

導入操作等這類全局操作必須用root賬號。

国产综合久久一区二区三区