从5.0版本的数据库中打包数据到5.5版本中,然后做主从同步时遇到的问题及解决方案
以下操作在5.5版本的数据上执行
1.mysql当执行flush privileges刷新用户权限命令报出ERROR 1146 (42S02): Table 'mysql.servers' doesn't exist这样测错误
CREATE TABLE `servers` (
`Server_name` char(64) NOT NULL,
`Host` char(64) NOT NULL,`Db` char(64) NOT NULL,
`Username` char(64) NOT NULL,
`Password` char(64) NOT NULL,
`Port` int(4) DEFAULT NULL,
`Socket` char(64) DEFAULT NULL,
`Wrapper` char(64) NOT NULL,
`Owner` char(64) NOT NULL,
PRIMARY KEY (`Server_name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='MySQL Foreign Servers table';
2.unable to use slaves temporary directory/dev/shm/mysql_tmp
查看是否存在该文件,并赋予mysql.mysql权限
3.mysql升级到5.5 ,使其能兼容5.0中的数据表 ps:改实例3309使用的是Mysql5.5.25版本
#mysql -uroot -p -S /tmp/mysql-3309.sock
>REPAIR TABLE mysql.help_keyword;
>REPAIR TABLE mysql.help_category;
>REPAIR TABLE mysql.help_topic;
>REPAIR TABLE mysql.proc;
>REPAIR TABLE mysql.procs_priv;
>REPAIR TABLE mysql.time_zone_name;
#/usr/local/mysql_3309/bin/mysql_upgrade -uroot -p -S /tmp/mysql-3309.sock --force
若不进行mysql_upgrade操作,在5.0版本和5.5版本之间进行主从同步时,会报错
4.修改my.cnf配置文件,mysql5.1里的部分参数5.5不识别,5.5版本默认的存储引擎是Innodb,我们目前使用的5.0的存储引擎是myisam,需要修改配置文件
default_storage_engine = MYISAM
#skip-locking 在5.5里已经不识别了,改成
skip-external-locking
#log-long-format 在5.5里已经不识别了,改成
log-short-format
#log_slow_queries 在5.5里已经不识别了,改成
slow-query-log
#default-character-set = utf8 在5.5里已经不识别了,改成
character-set-server = utf8
5.mysql主从复制,经常会遇到错误而导致slave端复制中断,这个时候一般就需要人工干预,跳过错误才能继续
跳过错误有两种方式:
vi /etc/my.cnf
[mysqld]
#slave-skip-errors=1062,1053,1146 #跳过指定error no类型的错误
#slave-skip-errors=all #跳过所有错误
本文出自 “咚咚的博客” 博客,谢绝转载!