mysql主从复制某几个表

复制单表或者多个表以上,需要使用replicate-do-table参数来实现。

vi  /etc/my.cnf

replicate-do-db=db_name
replicate-ignore-db=tb_name

replicate-do-table=db_name.tb_name

有几个表需要复制,就写几条replicate-do-table=

起初没有加db_name. 重启mysql时无法成功,查看日志:

140216 22:56:12 mysqld_safe mysqld from pid file /usr/local/mysql/data/xxx.hichina.com.pid ended
140216 22:56:20 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
140216 22:56:20 [ERROR] Could not add do table rule ‘TB_NAME’!

确认表名没错,就在/etc/my.cnf中修改要复制的表前加上数据库名,启动解决。

Unknown OS character set ‘GB18030’.

写了一个关于mysql的脚本,执行时提示个错误:

mysql: Unknown OS character set ‘GB18030’.
mysql: Switching to the default character set ‘latin1’.

提示说未识别操作系统字符集GB18030,切换为latin1。

我这里解决办法是修改/etc/profile文件:

export LC_ALL=”zh_CN.UTF-8″        
export LANG=”zh_CN.UTF-8″

将原先参数修改为zh_CN.UTF-8,然后执行 source /etc/profile 生效。再执行脚本不再提示错误。