包含linux上mysql主從建立的詞條

本文目錄一覽:

linux系統中如何創建mysql用戶

//登錄MYSQL

@mysql -u root -p

@密碼

//創建用戶

mysql insert into mysql.user(Host,User,Password) values(『localhost』,’jeecn』,password(『jeecn』));

//刷新系統權限表

mysqlflush privileges;

這樣就創建了一個名為:jeecn 密碼為:jeecn 的用戶。

//退出後登錄一下

mysqlexit;

mysql的主從複製,linux重啟後遇到問題。

主機的mysql重啟,但是你的從機mysql肯定是沒重啟才出現binlog索引不一致的現象,我認為是,從機mysql在主機重啟之前slave_io_running線程始終保持和主機通信,傳輸binlog的更新。當主機掛掉之後,slave_io_running一直等待,狀態變成NO,整個複製就會停掉,應該說是處於sleep狀態,後來主機恢復,從機是沒法辨別的,只能stop slave 然後再start,或者change master操作下,實在不行,只能重啟從機的mysql了

linux mysql5.1.73怎麼做主從複製

首先,我們大概羅列一下主從複製的基本步驟,(MySQL主從首先需要在各自服務器配置好)。1.複製數據庫。mysqldump–master-data–single-transaction-R–databases[db_name]|gzip-9-|pvall-db-with-master-data.sql.gz注意:innodb用–single-transaction,myisam需要用–lock-all-tables。2.複製,導入數據。pvnewdb.sql3.主服務器上,修改my.cnf文件,添加新庫到binlog-do-db參數,重啟mysql。4.在導出的newdb.sql裏面查找當前的日誌文件以及位置(changemasterto…)然後讓slave服務器執行到這個位置。startslaveuntilMASTER_LOG_FILE=”mysql-bin.000001″,MASTER_LOG_POS=1222220;其中MASTER_LOG_FILE以及MASTER_LOG_POS在導出的數據庫newdb.sql頂部位置查找。4.導入新庫到從服務器上。mysql

怎麼查看linux mysql 主從複製 連接成功

MySQL是開源的關係型數據庫系統。複製(Replication)是從一台MySQL數據庫服務器(主服務器master)複製數據到另一個服務器(從服務器slave)的一個進程。

配置主服務器(master)

1、編輯數據庫配置文件my.cnf,一般在/etc/目錄下。

#vi /etc/my.cnf

在[mysqld]的下面加入下面代碼:

log-bin=mysql-bin

server-id=1

innodb_flush_log_at_trx_commit=1

sync_binlog=1

binlog-do-db=wordpress

binlog_ignore_db=mysql

server-id=1中的1可以任定義,只要是唯一的就行。

binlog-do-db=wordpress是表示只備份wordpress。

binlog_ignore_db=mysql表示忽略備份mysql。

不加binlog-do-db和binlog_ignore_db,那就表示備份全部數據庫。

2、然後重啟MySQL:

#service mysqld restart

3、登錄MySQL服務器。

#mysql -uroot -p

在主服務器新建一個用戶賦予「REPLICATION SLAVE」的權限。你不需要再賦予其它的權限。在下面的命令,把X.X.X.X替換為從服務器的IP。

mysqlCREATE USER ‘user’@ ‘X.X.X.X’ IDENTIFIED BY ‘password’;

mysqlGRANT REPLICATION SLAVE ON *.* TO ‘user’@’X.X.X.X’ IDENTIFIED BY ‘password’;

4、執行以下命令鎖定數據庫以防止寫入數據。

mysqlFLUSH TABLES WITH READ LOCK;

5、退出mysql命令行,導出數據庫

#mysqldump -u root -p123456 –all-databases –lock-tables=false — /root/all.sql

6、使用scp命令傳輸數據庫文件all.sql到從服務器。

#scp /root/all.sql root@

7、再次連接數據庫進入mysql命令行查看master狀態。

mysqlSHOW MASTER STATUS;

請記下顯示的信息,配置從服務器會用到。

+——————+———-+————–+——————+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+——————+———-+————–+——————+

| mysql-bin.000003 | 1001741 | dbispconfig | mysql |

+——————+———-+————–+——————+

1 row in set (0.00 sec)

8、解鎖數據表。

mysqlUNLOCK TABLES;

配置從服務器(slave)

登錄從服務器。

1、導入主服務器的數據庫。

#mysql -u root -p123456 /root/all.sql

2、編輯配置文件my.cnf,在[mysqld]下面加入:

server-id=2

2可以自己定義,只要保證唯一的就行。

3、保存文件並重啟mysqld。

#service mysqld restart

4、登錄mysql服務器,執行以下命令。

mysqlCHANGE MASTER TO

MASTER_HOST=’X.X.X.X’,

MASTER_USER=’user’,

MASTER_PASSWORD=’password’,

MASTER_PORT=3306,

MASTER_LOG_FILE=’mysql-bin.000001′,

MASTER_LOG_POS=98,

MASTER_CONNECT_RETRY=10;

MASTER_HOST:主服務器的IP。

MASTER_USER:配置主服務器時建立的用戶名

MASTER_PASSWORD:用戶密碼

MASTER_PORT:主服務器mysql端口,如果未曾修改,默認即可。

5、啟動slave進程。

mysqlSTART SLAVE;

6、查看mysql的日誌,一般在/var/log/目錄下的mysqld.log,如果啟動成功,你應該會看到類似下面的日誌。

[root@localhost ~]# vi /etc/my.cnf

091104 8:42:02 [Note] Slave I/O thread: connected to master 『root@X.X.X.X:3306?, replication started in log 『mysql-bin.000001? at position 98

現在主服務器和從服務器已經配置好了。另外你可能需要設置主服務器的數據庫二進制日誌的過期時間,可以在配置文件中使用參數expire_logs_days來設定。

如何配置兩個MySQL數據庫之間的主從同步功能

一、 概述

  MySQL從3.23.15版本以後提供數據庫複製(replication)功能,利用該功能可以實現兩個數據庫同步、主從模式、互相備份模式的功能。本文檔主要闡述了如何在linux系統中利用mysql的replication進行雙機熱備的配置。

二、 環境

操作系統:Linux 2.6.23.1-42.fc8 # SMP(不安裝XEN)

Mysql版本:5.0.45-4.fc8

設備環境:PC(或者虛擬機)兩台

三、 配置

數據庫同步複製功能的設置都在MySQL的配置文件中體現,MySQL的配置文件(一般是my.cnf):在本環境下為/etc/my.cnf。

3.1 設置環境:

IP的設置:

A主機 IP:10.10.0.119

Mask:255.255.0.0

B主機 IP:10.10.8.112

Mask:255.255.0.0

在IP設置完成以後,需要確定兩主機的防火牆確實已經關閉。可以使用命令service iptables status查看防火牆狀態。如果防火牆狀態

為仍在運行。使用service iptables stop來停用防火牆。如果想啟動關閉防火牆,可以使用setup命令來禁用或定製。

最終以兩台主機可以相互ping通為佳。

3.2 配置A主(master) B從(slave)模式

3.2.1 配置A 為master

 、增加一個用戶同步使用的帳號:

GRANT FILE ON *.* TO 『backup』@’10.10.8.112′ IDENTIFIED BY 『1234』;

GRANTREPLICATION SLAVE ON *.* TO 『backup』@’10.10.8.112′ IDENTIFIED BY 『1234』;

賦予10.10.8.112也就是Slave機器有File權限,只賦予Slave機器有File權限還不行,還要給它REPLICATION SLAVE的權限才可以。

、增加一個數據庫作為同步數據庫:

create database test;

、創建一個表結構:

create table mytest (username varchar(20),password varchar(20));

、修改配置文件:

修改A的/etc/my.cnf文件,在my.cnf配置項中加入下面配置:

server-id = 1 #Server標識

log-bin

binlog-do-db=test #指定需要日誌的數據庫

、重起數據庫服務:

service mysqld restart

查看server-id:

show variable like 『server_id』;

實例:

mysql show variables like ‘server_id’;

+—————+——-+

| Variable_name | Value |

+—————+——-+

| server_id | 1 |

+—————+——-+

1 row in set (0.00 sec)

、用show master status/G命令看日誌情況。

正常為:

mysql show master status/G

*************************** 1. row ***************************

File: mysqld-bin.000002

Position: 198

Binlog_Do_DB: test,test

Binlog_Ignore_DB:

1 row in set (0.08 sec)

3.2.2 配置B 為slave

、增加一個數據庫作為同步數據庫:

create database test;

、創建一個表結構:

create table mytest (username varchar(20),password varchar(20));

、修改配置文件:

修改B的/etc/my.cnf文件,在my.cnf配置項中加入下面配置:

server-id=2

master-host=10.10. 0.119

master-user=backup #同步用戶帳號

master-password=1234

master-port=3306

master-connect-retry=60 #預設重試間隔秒

replicate-do-db=test #告訴slave只做backup數據庫的更新

、重起數據庫服務:

service mysqld restart

查看server-id:

show variables like 『server_id』;

實例:

mysql show variables like ‘server_id’;

+—————+——-+

| Variable_name | Value |

+—————+——-+

| server_id | 2 |

+—————+——-+

1 row in set (0.00 sec)

、用show slave status/G命令看日誌情況。

正常為:

mysql show slave status/G

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 10.10.0.119

Master_User: backup

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysqld-bin.000001

Read_Master_Log_Pos: 98

Relay_Log_File: mysqld-relay-bin.000003

Relay_Log_Pos: 236

Relay_Master_Log_File: mysqld-bin.000001

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB: test,test

Replicate_Ignore_DB:

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

Last_Errno: 0

Last_Error:

Skip_Counter: 0

Exec_Master_Log_Pos: 98

Relay_Log_Space: 236

Until_Condition: None

Until_Log_File:

Until_Log_Pos: 0

Master_SSL_Allowed: No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master: 0

1 row in set (0.01 sec)

3.2.3 驗證配置

分別使用insert, delete , update在A主機進行增刪改查數據庫;查看B主機的數據庫是否與A主機一致;若一致,則配置成功。

3.3雙機互備模式

如果在A主機加入slave設置,在B主機加入master設置,則可以做B-A的同步。

、在A主機的配置文件中 mysqld配置項加入以下設置:

master-host=10.10.8.112

master-user=backup

master-password=1234

replicate-do-db=test

master-connect-retry=10

、在B的配置文件中 mysqld配置項加入以下設置:

log-bin

binlog-do-db=test

注意:當有錯誤產生時,*.err日誌文件同步的線程退出,當糾正錯誤後,要讓同步機制進行工作,運行slave start。

重起A、B機器,則可以實現雙向的熱備份。

四、 常見問題及解決

、Slave機器的權限問題,不但要給slave機器File權限,還要給它REPLICATION SLAVE的權限。

、在修改完Slave機器/etc/my.cnf之後,slave機器的mysql服務啟動之前,記得要刪除掉master.info

、在show master status或着show slave status不正常時,看看.err是怎樣說的。

、Slave上Mysql的Replication工作有兩個線程, I/O thread和SQL thread。I/O的作用是從

master 3306端口上把它的binlog取過來(master在被修改了任何內容之後,就會把修改了什麼寫到自己的binlog等待slave更

新),然後寫到本地的relay-log,而SQL thread則是去讀本地的relay-log,再把它轉換成本Mysql所能理解的語句,於是同步

就這樣一步一步的完成.決定I/O thread的是/var/lib/mysql/master.info,而決定SQL thread的是/var

/lib/mysql/relay-log.info.

、啟動slave,命令用start slave;重新啟動用restart slave

原創文章,作者:CVSR,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/150281.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
CVSR的頭像CVSR
上一篇 2024-11-07 09:50
下一篇 2024-11-07 09:50

相關推薦

  • 如何修改mysql的端口號

    本文將介紹如何修改mysql的端口號,方便開發者根據實際需求配置對應端口號。 一、為什麼需要修改mysql端口號 默認情況下,mysql使用的端口號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL數據庫 在使用Python操作MySQL之前,我們需要先連接MySQL數據庫。在Python中,我…

    編程 2025-04-29
  • MySQL遞歸函數的用法

    本文將從多個方面對MySQL遞歸函數的用法做詳細的闡述,包括函數的定義、使用方法、示例及注意事項。 一、遞歸函數的定義 遞歸函數是指在函數內部調用自身的函數。MySQL提供了CRE…

    編程 2025-04-29
  • MySQL bigint與long的區別

    本文將從數據類型定義、存儲空間、數據範圍、計算效率、應用場景五個方面詳細闡述MySQL bigint與long的區別。 一、數據類型定義 bigint在MySQL中是一種有符號的整…

    編程 2025-04-28
  • MySQL左連接索引不生效問題解決

    在MySQL數據庫中,經常會使用左連接查詢操作,但是左連接查詢中索引不生效的情況也比較常見。本文將從多個方面探討MySQL左連接索引不生效問題,並給出相應的解決方法。 一、索引的作…

    編程 2025-04-28
  • CentOS 7在線安裝MySQL 8

    在本文中,我們將介紹如何在CentOS 7操作系統中在線安裝MySQL 8。我們會從安裝環境的準備開始,到安裝MySQL 8的過程進行詳細的闡述。 一、環境準備 在進行MySQL …

    編程 2025-04-27
  • 如何在Linux中添加用戶並修改配置文件

    本文將從多個方面詳細介紹在Linux系統下如何添加新用戶並修改配置文件 一、添加新用戶 在Linux系統下創建新用戶非常簡單,只需使用adduser命令即可。使用以下命令添加新用戶…

    編程 2025-04-27
  • 如何使用MySQL字段去重

    本文將從多個方面為您詳細介紹如何使用MySQL字段去重並給出相應的代碼示例。 一、SELECT DISTINCT語句去重 MySQL提供了SELECT DISTINCT語句,通過在…

    編程 2025-04-27
  • MySQL正則表達式替換

    MySQL正則表達式替換是指通過正則表達式對MySQL中的字符串進行替換。在文本處理方面,正則表達式是一種強大的工具,可以方便快捷地進行字符串處理和匹配。在MySQL中,可以使用正…

    編程 2025-04-27
  • 如何解決linux jar包 invalid or corrupt jarfile問題

    對於許多開發人員和系統管理員在Linux環境下使用Java開發過程中遇到的一個常見的問題是 invalid or corrupt jarfile(無效或損壞的jar文件)錯誤。當您…

    編程 2025-04-27

發表回復

登錄後才能評論