mysql复制成功,现在想把从数据库改成其他名字。目前在配置文件中添加了
replicate-rewrite-db = old -> new。总出错误,我试过两种方法:
1 从服务器配置文件中添加replicate-rewrite-db = old -> new。主服务器重新建立 old 库,随即从服务器上生成old库
2 从服务器配置文件中添加replicate-rewrite-db = old -> new。主从服务器分别建立old和new空库。old库中添加数据后,new库中也随即添加数据,但当修改old库中数据时,发生错误,new库没更改

解决方案 »

  1.   


    就是先建立主从数据库old和new,向old库中导入数据,new上直接就复制过去了,但当更改old的数据时,new库没有更新,显示错误。
      

  2.   

    我从服务器配置:GRANT  REPLICATION  SLAVE,  REPLICATION  CLIENT  ON  *.*  TO  repl@"192.168.1.%"  IDENTIFIED  BY  'test';server-id=2
    log-bin=mysql-bin
    master-host=192.168.1.160
    master-user=repl
    master-password=test
    master-port=3306
    replicate-rewrite-db=old->new
    CHANGE  MASTER  TO  MASTER_HOST = '192.168.1.160', 
    MASTER_USER = 'repl' ,  
    MASTER_PASSWORD = 'test',  
    MASTER_LOG_FILE = 'mysql-bin.000001', 
    MASTER_LOG_POS = 106;   下图为我配置复制完成后的显示界面
    配置完成后向old库导入数据,此时new库能直接复制,查看数据库如下:当修改old库时出错,查看从服务器的slave status显示如下您留个联系方式吧,QQ或邮箱什么的,现在在的这家公司没有专门做数据库的,做起来有点吃力,呵呵。
      

  3.   

    我都是用MySQL Tools中的Query Browser操作数据库,是不是这个的问题?
      

  4.   

    操作命令在哪里都一样,但是添加复制过滤的参数,需要在my.cnf 里面配置
      

  5.   

    我用的都是windows系统,里面修改的是my.ini文件
    replicate-rewrite-db=old->new这个命令主从都要配置吗?还是只用从机器配置?
    我又试了几次还是不行,只要在主服务器上修改表内容从服务器就显示“error table 'old.table_user' doesn't exist on query.Default database 'new'. ”
      

  6.   

    在复制正常的情况下,只要在从上设置该参数( replicate-rewrite-db=old->new )就可以了,对应是主上:old数据库,从上:new数据库.
      

  7.   

    不知道楼主是怎么弄的。我在linux下面,我直接在从服务器上配置文件my.cnf(win下为my.ini吧)replicate-rewrite-db=old->new;
    然后在主从服务器上分别建立old和new数据库,之后在old中建立表test_rewrite,再插入数据,在对比old和new中的数据都是一样的。没有问题。你是否是主从同步哪里出了小问题导致的?