我需要停止运行MySQL 4.1的大型数据库(MyISAM和InnoDB),并迁移到一个新的(新鲜的Squeeze上安装5.1.63)的旧服务器。 这是一个共享的托pipe服务器,所以我有很多的用户和数据库(2000年左右)。
我不想同时迁移所有数据库,只能逐个迁移。
做这个的最好方式是什么 ?
我应该期待一些问题迁移?
你应该分别mysqldump每个数据库。 此外,由于MySQL 4.1的授权表与MySQL 5.5的授权表不匹配,因此您必须以SQL格式转储MySQL授予。
# # mysqldump each database except the 'mysql' schema # MYSQL_USER=root MYSQL_PASS=rootpassword MYSQL_CONN="-u${MYSQL_USER} -p${MYSQL_PASS}" mysql ${MYSQL_CONN} -ANe"SHOW DATABASES" | grep -v mysql | > /tmp/ListDBs.txt for DB in `cat /tmp/ListDBs.txt` do mysqldump ${MYSQL_CONN} --hex-blob --databases ${DB} > ${DB}.sql done # # Dump MySQL Grants as SQL # mysql ${MYSQL_CONN} -ANe"SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>''" | mysql ${MYSQL_CONN} -AN | sed 's/$/;/g' > MySQLUserGrants.sql
当你对MySQL 5.5执行所有的脚本时,他们会
试一试 !!!