windows 安裝mysql多版本 主從複製

在windows7下安裝mysql如下版本:
一、mysql-5.7.28
二、mysql-8.0.20:主庫
三、mysql-8.0.20:從庫

1、mysql-5.7.28安裝和啓用

1.1 下載安裝

免安裝版本:https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.28-winx64.zipmysql

安裝版本:https://downloads.mysql.com/archives/community/sql

我使用的是免安裝版本,把文件解壓出來以下路徑:F:mysqlmysql-5.7.28-winx64數據庫

1.2 配置信息

首先在F:mysqlmysql-5.7.28-winx64路徑下新建my.ini文件,內容以下:windows

[mysqld]
# 設置服務端使用的字符集爲utf-8
character-set-server=utf8
# 設置mysql的端口號
port = 3306
# 設置mysql的安裝目錄(能看到bin便可)
basedir=F:\mysql\mysql-5.7.28-winx64
# 設置mysql數據庫的數據的存放目錄(即data文件夾,必須是空目錄)
datadir=F:\mysql\mysql-5.7.28-winx64\data
# 容許最大鏈接數
max_connections=2000
# 建立新表時將使用的默認存儲引擎
default-storage-engine=INNODB
# 設置mysql以及數據庫的默認編碼
[mysql]
default-character-set=utf8
[mysql.server]
default-character-set=utf8
# 設置客戶端默認字符集
[client]
port = 3306
default-character-set=utf8

注意:basedir和datadir的路徑不要出現中文和空格。編碼

1.3 安裝及初始化

進入F:mysqlmysql-5.7.28-winx64bin,按住Shift+右鍵,選擇"在此處打開命令窗口",執行以下命令:spa

mysqld install

image

出現Service successfully installed.表示安裝成功。接下來繼續執行mysqld --initialize --console
image插件

最後的=WsstAcIc4oh是數據庫的初始化密碼,記住它,後面須要用到它進行密碼重置。日誌

1.4 啓動服務

繼續在CMD執行以下命令:net start mysql
imagecode

(net stop mysql 是中止服務,sc delete mysql是刪除服務)cdn

一樣在bin目錄下,執行mysqld -nt --install用來開機時自動啓動此服務。

1.5 重置密碼
一樣在bin目錄下,執行:

mysql -uroot -p

而後輸入初始密碼。

進入mysql後,執行重置密碼指令:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密碼';

image

2、mysql-8.0.20安裝和啓用

2.1 下載安裝

免安裝版本:https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.20-winx64.zip

下載後解壓到路徑:F:mysqlmysql-8.0.20-winx64

2.2 配置信息

首先在F:mysqlmysql-8.0.20-winx64路徑下新建data文件夾和my.ini文件,內容以下:

[mysqld]
# 設置3307端口(原先的mysql5已經佔用3306)
port=3307
# 設置mysql的安裝目錄(你本身的目錄)
basedir=F:\mysql\mysql-8.0.20-winx64
# 設置mysql數據庫的數據的存放目錄
datadir=F:\mysql\mysql-8.0.20-winx64\data
# 容許最大鏈接數
max_connections=200
# 容許鏈接失敗的次數。
max_connect_errors=10
# 服務端使用的字符集默認爲UTF8
character-set-server=utf8
# 建立新表時將使用的默認存儲引擎
default-storage-engine=INNODB
# 默認使用「mysql_native_password」插件認證
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
# 設置mysql客戶端默認字符集
default-character-set=utf8
[client]
# 設置mysql客戶端鏈接服務端時默認使用的端口
port=3307
default-character-set=utf8

注意:basedir和datadir的路徑不要出現中文和空格。

2.3 關閉原先的mysql服務

WIN+R鍵輸入services.msc打開服務,中止全部在運行中的Mysql服務。
image

2.4 安裝及初始化

進入F:mysqlmysql-8.0.20-winx64bin,按住Shift+右鍵,選擇"在此處打開命令窗口",執行以下命令:

mysqld --initialize --console

image

最後的_t:KDa)PP7nV是數據庫的初始化密碼,記住它,後面須要用到它進行密碼重置。

接下來繼續執行

mysqld --install MySQL8

若出現Service successfully installed.表示安裝成功。

2.5 啓動服務

繼續在CMD執行以下命令:

net start mysql8

(net stop mysql8 是中止服務,sc delete mysql8是刪除服務)

一樣在bin目錄下,執行

mysqld -nt --install

用來開機時自動啓動此服務。

2.6 重置密碼

一樣在bin目錄下,執行:

mysql -uroot -p

而後輸入初始密碼。

進入mysql後,執行重置密碼指令:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密碼';

3、mysql-8的主從配置

安裝前請中止全部正在運行中的數據庫服務,詳見2.3操做步驟。

另外數據庫的版本號儘可能保持相同,以下圖,我使用mysql-8.0.20-winx64做爲主數據庫,mysql-8.0.20-winx64-2做爲從數據。
image

不論是主數據庫仍是從數據庫,安裝配置的步驟跟上面第二步安排mysql8是相似的。

一、分別配置my.init文件:

Master主數據庫的my.ini配置,新增以下內容:

[mysqld]
# 主庫配置
server_id=1log-bin=mysql-bin

# 須要同步的數據庫
binlog-do-db=demo

Slave從數據的my.ini配置,新增以下內容:

[mysqld]# 從庫配置
server_id=2
log-bin=mysql-bin

#須要同步的數據庫
binlog-do-db=demo

因爲是在同一個windows環境下安裝多個mysql服務,故每一個mysql服務的端口號不能重複。並且my.ini配置文件裏面的server_id也不能同名。

二、註冊不一樣的服務名稱

因爲操做步驟2.5中生成了服務名稱:mysql8。我打算用它來看成主數據庫,故使用sc delete mysql8先刪除掉,以前爲主數據庫註冊一個容易記住的新名稱。

進入F:mysqlmysql-8.0.20-winx64bin目錄下執行:

mysqld --install MySQL8-master

一樣的F:mysqlmysql-8.0.20-winx64-2bin目錄下執行:

mysqld --install MySQL8-slave

三、開啓主從同步

一、首先進入master,建立一個給slave的訪問帳號

帳號admin01,密碼admin123456

CREATE USER admin01@'%' IDENTIFIED WITH 'mysql_native_password' BY 'admin123456';
GRANT REPLICATION SLAVE ON *.* TO admin01@'%';
FLUSH PRIVILEGES;
二、查看master的狀態:
show master status\G;

image

File的值爲mysql-bin.000004。這個值能夠在my.ini中指定:log_bin-index=master-bin.index,沒有指定的話則由系統自動生成。

三、登陸slave從庫,進入mysql後輸入如下指令,用於從庫設置主庫的鏈接信息:
CHANGE MASTER TOMASTER_HOST='192.168.0.212',
MASTER_PORT=3307,
MASTER_USER='admin01',
MASTER_PASSWORD='admin123456',
MASTER_LOG_FILE='mysql-bin.000004',
MASTER_LOG_POS=832;

說明:

MASTER_HOST:主數據庫的主機ip
MASTER_PORT:主數據庫的端口,不設置則默認是3306
MASTER_USER:主數據庫被授予同步複製權限的用戶名
MASTER_PASSWORD:對應的用戶密碼
MASTER_LOG_FILE:在主數據庫執行命令show master status 查詢到的二進制日誌文件名稱
MASTER_LOG_POS:在主數據庫執行命令show master status 查詢到的位置 Position的值

四、開啓主從同步:start slave;

查看主從同步狀態:

show slave status\G;

image

若是出現Slave_IO_State爲Waiting for master to send event,以及Slave_IO_Running和Slave_SQL_Running爲Yes,則表示從庫已同步主庫成功。

相關文章
相關標籤/搜索