Migracija mysql servera

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

This entry was posted in admin, linux and tagged , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published.