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位置(這個點兒之前的數據已經在上一步導入歷史數據時導入)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章