程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql主從數據庫,分庫分表等筆記

mysql主從數據庫,分庫分表等筆記

編輯:MySQL綜合教程

mysql主從數據庫,分庫分表等筆記   1、mysql的目錄:在rpm或者yum安裝時:/var/lib/mysql  在編譯安裝時默認目錄:/usr/local/mysql   2、用rpm包安裝的MySQL是不會安裝/etc/my.cnf文件的, 至於為什麼沒有這個文件而MySQL卻也能正常啟動和作用,在點有兩個說法, 第一種說法,my.cnf只是MySQL啟動時的一個參數文件,可以沒有它,這時MySQL會用內置的默認參數啟動, 第二種說法,MySQL在啟動時自動使用/usr/share/mysql目錄下的my-medium.cnf文件,這種說法僅限於rpm包安裝的MySQL, 解決方法,只需要復制一個/usr/share/mysql目錄下的.cnf文件到/etc目錄,並改名為my.cnf即可。   在/usr/share/mysql目錄下有很多語言目錄和mysql多個適用於不同類型項目的對應配置文件   3、配置mysql的字符集設置:         在配置文件中         在socket          = /var/lib/mysql/mysql.sock後添加default-character-set = utf8 (決定了客服端字符集和連接字符集)         在myisam_sort_buffer_size = 8M後添加character-set-server = utf8 (決定了服務器字符集和數據庫[數據庫,表,字段]字符集,由於繼承關系),添加collaction-server=usf8_general_ci (這是設置校驗字符集,作用於排序有關order by)   4、開啟mysql的log-bin:       配置文件中開啟 log-bin=mysql-bin (等於後面的內容可以隨便寫,mysql-bin只是說明log-bin的內容寫入mysql-bin裡面而已),重啟mysql後,在/var/lib/mysql下能發現 mysql-bin.000001和mysql-bin.index,說明mysql-bin已經開啟   5、關於mysqlbin的一些命令        mysql提示符下查看bin-log日志     show master status;     #顯示最後一個bin-log日志和它的最後一個位置     show master logs;     #查看所有的bin-log日志,同時標記最後一個pos位置   6、使用mysqlbinlog命令來查看binlog日志        如果提示字符集錯誤---mysqlbinlog: unknown variable 'default-character-set=utf8' ,可以mysqlbinlog --no-defaults /var/lib/mysql/mysql-bin.000001來忽略字符集錯誤   7、什麼時候會產生一個新bin-log日志      1)重啟mysql服務      2)flush logs;       #刷新bin-log日志,會產生一個新的bin-log日志 如:mysql-bin.00008      3) reset master;    #清空所有在bin-log日志,最後只剩下mysql-bin.00001 且位置為初始位置      需求:公司內真正數據備份與恢復,9:30的時候備份數據,同時刷新bin-log日志,但是10:00數據損壞,如何去恢復9:30以來所有的數據?(在編譯安裝mysql環境下)     1.9:30備份數據:       /usr/local/mysql/bin/mysqldump -uroot -p123 test -l -F >/tmp/test.sql      -l 將表鎖了(防止在導表的過程中,又有用戶修改或者添加數據),只讀  -F (flush) 刷新bin-log日志(產生新的日志文件,繼續保存後面的日志記錄)    2.9:30-10:00數據都會寫到bin-log      /usr/loca/mysql/bin/mysqlbinlog --no-defaults mysql-bin.000003     #只保存增、刪、改的語句   3.10:00數據損壞,如何恢復數據:     1)恢復9:30備份的數據         /usr/local/mysql/bin/mysql -uroot -p123 test </tmp/test.sql     2)恢復9:30-10:00之間的bin-log日志中的增、刪、改語句        /usr/local/mysql/bin/mysqlbinlog --no-defaults --stop-position=367 mysql-bin.000003|/usr/local/mysql/bin/mysql -uroot -p123 test         --stop-position 為要恢復數據在logbin的最後日志,可以通過查看日志文件查找位置,還有--start-position表示恢復從該位置以後的數據   4.這樣,數據全部恢復完畢   8、主從數據庫      從mysql服務器:   1.vi /etc/my.cnf   server-id = 2   log-bin=mysql-bin   master-host=192.168.255.1   master-user=user1   master-password=123   master-port=3306   2.重啟mysql   3.show slave status\G   Slave_IO_Running: Yes   #從主服務器復制bin-log成功   Slave_SQL_Running: Yes   #把復制過來的sql語句執行成功   4.出錯 #原因,與主服務器的最後一個pos位置對接不成功 slave stop; change master to master_host="192.168.10.1", master_user="user1", master_password='123', master_port=3306, #在主服務器上show master status; master_log_file="mysql-bin.000001", master_log_pos= 279; slave start;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved