1、导出单服务器整个数据库中的所有数据:
#mysqldump -p"123456" --all-databases --flush-logs --master-data=2 > /tmp/master.sql
或者只导出某个数据库
#mysqldump -p"123456" --databases mysql > /tmp/mysql.sql
打开master.sql,注意到有如下文字
-- Position to start replication or point-in-time recovery from
-- CHANGE MASTER TO MASTER_LOG_FILE=‘binlog.000220‘, MASTER_LOG_POS=156;
2、集群中导入整个数据
#mysql -p"123456"
mysql> source /tmp/master.sql
3、现在可以停止单服务器数据库了,避免数据变化,然后再导出从第一步执行mysqldump到当前的数据变化。
#mysqlbinlog --no-defaults --start-position=156 /var/lib/mysql/binlog.000220 > /tmp/last.sql
4、再在集群中导入最后部分数据
#mysql -p"123456"
mysql> source /tmp/last.sql
如果有用户或权限的变化,使用命令更新
mysql> flush privileges;
5、将所有APP的数据连接指向当前集群的服务地址
以上,完成MYSQL由单服务器向集群迁移。