Migracija mysql servera sa jednog servera na drugi podrazumeva: kreiranja baza i podesavanje privilegija na novom, kao i import exporta sa starog. Priprema exporta bazi je jednostavna, ali ako ih ima dosta scripta moze pomoci. Ja obično imam urednu dokumentaciju sa SQL queriima za pravljenje baza i dodavanje korsnika/privilegija, ali ponekad je zgodnije uraditi export i toga. Dve scripte za pomoć oko exporta.
export_create_db_and_grants.sh – pravi create database i grant upite za pravljenje baza i dodeljivanja usera/privilegija na novom serveru:
#!/bin/bash AUTH="-u root -ppassword" echo "SELECT Concat('create database ', SCHEMA_NAME, ';') FROM INFORMATION_SCHEMA.SCHEMATA where SCHEMA_NAME NOT IN ('mysql', 'information_schema');" \ | mysql $AUTH --silent --skip-column-names echo echo "select concat('show grants for ', User, '@\\'', Host, '\\';') from user where User != 'debian-sys-maint';" \ | mysql $AUTH mysql --silent --skip-column-names \ | mysql $AUTH --silent --skip-column-names \ | sed -e 's/$/;/' |
export_all_db.sh – export svih baza u ime_baze.sql fajl:
#!/bin/bash AUTH="-u root -ppassword" echo "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA where SCHEMA_NAME NOT IN ('mysql', 'information_schema');" \ | mysql $AUTH --silent --skip-column-names \ | while read DB; do echo "Exporting ${DB} to ${DB}.sql" mysqldump $AUTH $DB > ${DB}.sql done |
Downaload: export_create_db_and_grants.sh export_all_db.sh