學(xué)習(xí)啦——學(xué)設(shè)計>網(wǎng)頁設(shè)計>網(wǎng)站建設(shè)>網(wǎng)站服務(wù)器管理>

MySQL怎么設(shè)置主從復(fù)制_MySQL主從復(fù)制有哪些方法

時間: 宇民40 分享

  MySQL是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在 WEB 應(yīng)用方面,MySQL是最好的 RDBMS 應(yīng)用軟件。下面由學(xué)習(xí)啦小編為大家整理的MySQL主從復(fù)制的方法,希望大家喜歡!

  MySQL主從復(fù)制的方法

  設(shè)置主從復(fù)制:

  1、確保在主服務(wù)器和從服務(wù)器上安裝的MySQL版本相同,并且最好是MySQL的最新穩(wěn)定版本。

  2、在主服務(wù)器上為復(fù)制設(shè)置一個連接賬戶。該賬戶必須授予REPLICATION SLAVE權(quán)限。如果賬戶僅用于復(fù)制(推薦這樣做),則不需要再授予任何其它權(quán)限。

  mysql> GRANT REPLICATION SLAVE ON *.*

  -> TO 'replication'@'%.yourdomain.com' IDENTIFIED BY 'slavepass';

  3、執(zhí)行FLUSH TABLES WITH READ LOCK語句清空所有表和塊寫入語句:

  mysql> FLUSH TABLES WITH READ LOCK;

  保持mysql客戶端程序不要退出。開啟另一個終端對主服務(wù)器數(shù)據(jù)目錄做快照。

  shell> cd /usr/local/mysql/

  shell> tar -cvf /tmp/mysql-snapshot.tar ./data

  如果從服務(wù)器的用戶賬戶與主服務(wù)器的不同,你可能不想復(fù)制mysql數(shù)據(jù)庫。在這種情況下,應(yīng)從歸檔中排除該數(shù)據(jù)庫。你也不需要在歸檔中包括任何日志文件或者master.info或relay-log.info文件。

  當(dāng)FLUSH TABLES WITH READ LOCK所置讀鎖定有效時(即mysql客戶端程序不退出),讀取主服務(wù)器上當(dāng)前的二進制日志名和偏移量值:

  mysql > SHOW MASTER STATUS;

  +---------------+----------+--------------+------------------+

  | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

  +---------------+----------+--------------+------------------+

  | mysql-bin.003 | 73 | test | manual,mysql |

  +---------------+----------+--------------+------------------+

  File列顯示日志名,而Position顯示偏移量。在該例子中,二進制日志值為mysql-bin.003,偏移量為73。記錄該值。以后設(shè)置從服務(wù)器時需要使用這些值。它們表示復(fù)制坐標(biāo),從服務(wù)器應(yīng)從該點開始從主服務(wù)器上進行新的更新。

  如果主服務(wù)器運行時沒有啟用--logs-bin,SHOW MASTER STATUS顯示的日志名和位置值為空。在這種情況下,當(dāng)以后指定從服務(wù)器的日志文件和位置時需要使用的值為空字符串('')和4.

  取得快照并記錄日志名和偏移量后,回到前一中端重新啟用寫活動:

  mysql> UNLOCK TABLES;

  4、確保主服務(wù)器主機上my.cnf文件的[mysqld]部分包括一個log-bin選項。該部分還應(yīng)有一個server-id=Master_id選項,其中master_id必須為1到232–1之間的一個正整數(shù)值。例如:

  [mysqld]

  log-bin

  server-id=1

  如果沒有提供那些選項,應(yīng)添加它們并重啟服務(wù)器。

  5、停止從服務(wù)器上的mysqld服務(wù)并在其my.cnf文件中添加下面的行:

  [mysqld]

  server-id=2

  slave_id值同Master_id值一樣,必須為1到232–1之間的一個正整數(shù)值。并且,從服務(wù)器的ID必須與主服務(wù)器的ID不相同。

  6、將數(shù)據(jù)備據(jù)目錄中。確保對這些文件和目錄的權(quán)限正確。服務(wù)器 MySQL運行的用戶必須能夠讀寫文件,如同在主服務(wù)器上一樣。

  Shell> chown -R mysql:mysql /usr/local/mysql/data

  7、啟動從服務(wù)器。在從服務(wù)器上執(zhí)行下面的語句,用你的系統(tǒng)的實際值替換選項值:

  mysql> CHANGE MASTER TO

  -> MASTER_HOST='master_host_name',

  -> MASTER_USER='replication_user_name',

  -> MASTER_PASSWORD='replication_password',

  -> MASTER_LOG_FILE='recorded_log_file_name',

  -> MASTER_LOG_POS=recorded_log_position;

  8、啟動從服務(wù)器線程:

  mysql> START SLAVE;

  執(zhí)行這些程序后,從服務(wù)器應(yīng)連接主服務(wù)器,并補充自從快照以來發(fā)生的任何更新。

  9、如果出現(xiàn)復(fù)制錯誤,從服務(wù)器的錯誤日志(HOSTNAME.err)中也會出現(xiàn)錯誤消息。

  10、從服務(wù)器復(fù)制時,會在其數(shù)據(jù)目錄中發(fā)現(xiàn)文件master.info和HOSTNAME-relay-log.info。從服務(wù)器使用這兩個文件跟蹤已經(jīng)處理了多少主服務(wù)器的二進制日志。不要移除或編輯這些文件,除非你確切知你正在做什么并完全理解其意義。即使這樣,最好是使用CHANGE MASTER TO語句。

  Mysql大小寫講解的方法

  一、1 CREATE TABLE NAME(name VARCHAR(10));

  對這個表,缺省情況下,下面兩個查詢的結(jié)果是一樣的:

  代碼如下:

  SELECT * FROM TABLE NAME WHERE name='clip';

  SELECT * FROM TABLE NAME WHERE name='Clip';

  MySql默認(rèn)查詢是不區(qū)分大小寫的,如果需要區(qū)分他,必須在建表的時候,Binary標(biāo)示敏感的屬性.

  代碼如下:

  CREATE TABLE NAME(

  name VARCHAR(10) BINARY

  );

  2 在SQL語句中實現(xiàn) SELECT * FROM TABLE NAME WHERE BINARY name='Clip';

  3 設(shè)置字符集:

  utf8_general_ci --不區(qū)分大小寫

  utf8_bin--區(qū)分大小寫

  二、 MySQL在windows下是不區(qū)分大小寫的

  將script文件導(dǎo)入MySQL后表名也會自動轉(zhuǎn)化為小寫,結(jié)果再 想要將數(shù)據(jù)庫導(dǎo)出放到linux服務(wù)器中使用時就出錯了。因為在linux下表名區(qū)分大小寫而找不到表,查了很多都是說在linux下更改MySQL的設(shè)置使其也不區(qū)分大小寫,但是有沒有辦法反過來讓windows 下大小寫敏感呢。其實方法是一樣的,相應(yīng)的更改windows中MySQL的設(shè)置就行了。

  具體操作:

  在MySQL的配置文件my.ini中增加一行:

  lower_case_table_names = 0

  其中 0:區(qū)分大小寫,1:不區(qū)分大小寫

  MySQL在Linux下數(shù)據(jù)庫名、表名、列名、別名大小寫規(guī)則是這樣的:

  1、數(shù)據(jù)庫名與表名是嚴(yán)格區(qū)分大小寫的;

  2、表的別名是嚴(yán)格區(qū)分大小寫的;

  3、列名與列的別名在所有的情況下均是忽略大小寫的;

  4、變量名也是嚴(yán)格區(qū)分大小寫的;

  MySQL四舍五入是什么

  一、FLOOR(X)

  1.返回不大于X的最大整數(shù)值。

  MySQL> select FLOOR(1.23);

  -> 1

  MySQL> select FLOOR(-1.23);

  -> -2

  注意返回值被變換為一個BIGINT!

  二、CEILING(X)

  2.返回不小于X的最小整數(shù)值。

  MySQL> select CEILING(1.23);

  -> 2

  MySQL> select CEILING(-1.23);

  -> -1

  注意返回值被變換為一個BIGINT!

  三、ROUND(X)

  3.返回參數(shù)X的MySQL四舍五入的一個整數(shù)。

  MySQL> select ROUND(-1.23);

  -> -1

  MySQL> select ROUND(-1.58);

  -> -2

  MySQL> select ROUND(1.58);

  -> 2

  注意返回值被變換為一個BIGINT!

  四、ROUND(X,D)

  4.返回參數(shù)X的四舍五入的有D為小數(shù)的一個數(shù)字。如果D為0,結(jié)果將沒有小數(shù)點或小數(shù)部分。

  MySQL> select ROUND(1.298, 1);

  -> 1.3

  MySQL> select ROUND(1.298, 0);

  -> 1

  注意返回值被變換為一個BIGINT!

MySQL怎么設(shè)置主從復(fù)制_MySQL主從復(fù)制有哪些方法

MySQL是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在 WEB 應(yīng)用方面,MySQL是最好的 RDBMS 應(yīng)用軟件。下面由學(xué)習(xí)啦小編為大家整理的MySQL主從復(fù)制的方法,希望大家喜歡! MySQL主從復(fù)制的方法 設(shè)置主從復(fù)制: 1、確保在主服務(wù)器和從服務(wù)器上安裝的MySQL版本相同,并且最好是M
推薦度:
點擊下載文檔文檔為doc格式

精選文章

27196