sql >> Database >  >> RDS >> Mysql

DEFINER-clausule verwijderen uit MySQL-dumps

Ik denk niet dat er een manier is om het toevoegen van DEFINER te negeren s naar de vuilstort. Maar er zijn manieren om ze te verwijderen nadat het dumpbestand is gemaakt.

  1. Open het dumpbestand in een teksteditor en vervang alle exemplaren van [email protected] met een lege string ""

  2. Bewerk de dump (of pijp de uitvoer) met perl :

    perl -p -i.bak -e "s/DEFINER=\`\w.*\`@\`\d[0-3].*[0-3]\`//g" mydatabase.sql
    
  3. Leid de uitvoer door sed :

    mysqldump ... | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' > triggers_backup.sql
    


  1. SQL Hoe uit een andere tabel optellen en in een andere tabel invoegen

  2. Moeten SQL-verbindingen die met PDO in PHP zijn geopend, worden gesloten?

  3. Niet alle parameters zijn gebruikt in de SQL-instructie (Python, MySQL)

  4. Verward over UPDLOCK, HOLDLOCK