Bu yüzden sql dosyasını rds (1G MEM, 1 CPU) içine almaya çalışıyorum. sql dosyası 1.4GErişim reddedildi; Bu işlem için SUPER ayrıcalıklarına (en az bir tane) gereksiniminiz var
gibi de saplanıpmysql -h xxxx.rds.amazonaws.com -u kullanıcının -ppass --max-izin-paket = 33554432 db < db.sql
geçerli:
ERROR 1227 (42000) at line 374: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
gerçek sql içeriği:
another_user
/*!50003 CREATE*/ /*!50017 DEFINER=`another_user`@`1.2.3.4`*/ /*!50003 TRIGGER `change_log_BINS` BEFORE INSERT ON `change_log` FOR EACH ROW
IF (NEW.created_at IS NULL OR NEW.created_at = '00-00-00 00:00:00' OR NEW.created_at = '') THEN
SET NEW.created_at = NOW();
END IF */;;
rds varolan değil, bu yüzden yapın:
Hala hayır şans.
Doğru konum. Çalışmamasının nedeni, giriş yapmış olan kullanıcının "SÜPER" ayrıcalığına sahip olmadığı (RDS'de kendisine izin verilmeyen) bir başka kullanıcının "DEFINER" olarak tanımlanması, keyfi ayrıcalık yükselmesine izin vermesidir. "DEFINER" öğelerinin kimlik bilgileri ve ayrıcalıkları (varsayılan olarak arayan kullanıcının - INVOKER onlarınkilerin). Ayrıca [Sunucu Arızasında] (https://serverfault.com/a/555983/153161). –
Adam bir hayat kurtarıcısın. Benim hosting şirketi ihraç edildiğinde bozuk veritabanı ve geri yüklemek için yapılması gereken bir şey söyledi. Mükemmel çözüm. – Woody
Herhangi bir nedenden ötürü * yerine * kullanmam gerekiyordu: '' 'sed 's/\ sDEFINER =' [^ '] *' @ '[^'] * '//' -i oldfile.sql''' ' –