mysql数据复制、导出、备份和主从同步

复制数据

  1. 复制数据结构及数据
mysql>create table new_table_name as select * from old_table_name;
  1. 只复制结构
mysql>create table new_tabe_name as select * from old_table_name where 1=2;

或者

mysql>create table new_table_name like old_table_name;
  1. 只复制数据
insert into new_table_name select * from old_table_name;

或者

mysql>insert into new_table_name(column1, column2,...,columnn) select column1,column2,...,columnn from old_table_name;

导出数据到文件

mysql命令行(导出到MySQL sever的路径):

mysql> select * from table_name into outfile "/path/out_file_name";

bash shell(导出到MySQL客户端机器路径):

mysql -h10.123.10.10 -uusername -ppwd -Pport -e "select * from table_name" >> /path/out_file_name

备份数据文件

mysqldump -h10.10.10.10 -uusername -ppwd -Pport mydbname > mydbname.sql
mysqldump -h10.10.10.10 -uusername -ppwd -Pport -B mydbname > mydbname.sql
mysqldump -h10.10.10.10 -uusername -ppwd -Pport --all-databases > all_database.sql

其中,-B参数添加后导出的数据包含create database的语句,导入的时候,新数据库不用实现创建表

主从同步

  1. master机器开启log-bin记录,并在mysql配置文件中设置唯一server-id, 重启mysql服务
    vim my.cnf
    log-bin=/path/bin-log-name
    server-id=1
    
  2. slave机器的mysql配置中设置与master机器不同的唯一server-id,重启mysql服务。
    vim my.cnf
    server-id=2
    
  3. master机器mysql创建同步专用账号,并对slave机器授权
    create user 'repl'@'%' identified by "replpwd";
    grant replication slave on *.* to "repl"@"%" identified by "replpwd";
    flush privileges;
    
  4. master 机器:
    • 加锁停止更新
      mysql> set global read_only=1;
      
    • 记下当前更新的日志位置,导出当前数据
      mysql> show master status\G;
      
    • 导出历史的数据
      mysqldump -hmaster-ip -uusername -ppwd -Pport -B mydbname > mydbname.sql
      
    • 解锁表
      mysql> set global read_only=0;
      
  5. slave机器:
    • 导入从master导出的历史数据
      mysql -hslave-ip -uusername -ppasswd -Pport mydbname < mydbname.sql
      
    • 开始同步master的数据
      mysql> change master to master_host='master_ip',master_user='repl',master_password='replpwd',master_log_gile='file-0001',master_log_pos=12345;
      mysql> start slave;
      
      其中,master_log_pos为在master机器记录的log位置(这个点儿之前的数据已经在上一步导入历史数据时导入)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章