这篇文章是我在工作中遇到的问题及解决办法。供博友们参考

数据迁移背景:

新添加了slave数据库服务器。先从原slave数据库的备份中scp一份到本机 我们公司的slave是在夜里3点停机,tar备份的,所以可以直接拿过来用。

因为不同版本的mysql运行的有多个实例,启动时需要准备multi.cnf文件。下面具体说明我所遇到的问题和解决办法。

MYSQL5.0数据迁移过程所遇到的问题
保证所有文件权限与原来对应一致   如果不一致需要都修改为mysql用户
服务启动成功但是slave复制出现异常:
原因是:mysqld_multi.cnf文件中需要做相关修改,路径要对应,确定server_id与其他主机不冲突

mysql5.5数据迁移过程遇到的问题比较多
主要原因有:
因为在配置文件中不支持master-host等相关参数,这个参数需要另行在数据库中添加
如果不知道数据库密码,强行登陆可做以下操作
1、kill mysqlid  杀死数据库对应的进程号
2、编写mysql5_multi.cnf配置文件 内容如下:
[mysqld_multi]
mysqld     = /disk2/mysql5.5/bin/mysqld_safe
mysqladmin = /disk2/mysql5.5/bin/mysqladmin
user       = multi_admin
password   = my_password

[mysqld]

socket = /disk2/mysql5.5/data/mysql1_fengbuy/mysql.sock
port = 4301
pid-file = /disk2/mysql5.5/data/mysql1_fengbuy/mysql.pid
datadir = /disk2/mysql5.5/data/mysql1_fengbuy/
user =  mysql

#skip-networking
server-id = 36
log-bin = mysql-bin
expire_logs_days = 7
slave_skip_errors = 1062
#master-host=192.168.192.45
#master-port=3306
#master-user=backup
#master-password=weiphone
#end

3、./bin/mysqld_safe --defaults-extra-file=mysql5_multi.cnf --skip-grant-tables &
这时就可以登陆了:
mysql -uroot -P4301 -h127.0.0.1
>show slave status\G
记录下Master_Log_File:  和 Read_Master_Log_Pos:
我这里是
Master_Log_File: mysql-bin.000013
Read_Master_Log_Pos: 371910048
指定主的ip 所使用的登录名和密码 和要复制的主二进制日志的位置 命令如下:
>change master to master_host='192.168.192.45',master_user='backup',master_password='weiphone',MASTER_LOG_FILE='mysql-bin.000013',MASTER_LOG_POS=371910048;
修改对应值即可
如果无法执行这条命令 可以
>stop slave;
>reset slave;
>change master to master_host='192.168.192.45',master_user='backup',master_password='weiphone',MASTER_LOG_FILE='mysql-bin.000013',MASTER_LOG_POS=371910048;
>start slave;

在查看slave状态
确保  Slave_IO_Running: Yes
      Slave_SQL_Running: Yes