在windows7下安裝mysql如下版本:
一、mysql-5.7.28
二、mysql-8.0.20:主庫
三、mysql-8.0.20:從庫
免安裝版本: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數據庫
首先在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的路徑不要出現中文和空格。編碼
進入F:mysqlmysql-5.7.28-winx64bin,按住Shift+右鍵,選擇"在此處打開命令窗口",執行以下命令:spa
mysqld install
出現Service successfully installed.表示安裝成功。接下來繼續執行mysqld --initialize --console插件
最後的=WsstAcIc4oh是數據庫的初始化密碼,記住它,後面須要用到它進行密碼重置。日誌
繼續在CMD執行以下命令:net start mysqlcode
(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 '新密碼';
免安裝版本:https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.20-winx64.zip
下載後解壓到路徑:F:mysqlmysql-8.0.20-winx64
首先在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的路徑不要出現中文和空格。
WIN+R鍵輸入services.msc打開服務,中止全部在運行中的Mysql服務。
進入F:mysqlmysql-8.0.20-winx64bin,按住Shift+右鍵,選擇"在此處打開命令窗口",執行以下命令:
mysqld --initialize --console
最後的_t:KDa)PP7nV是數據庫的初始化密碼,記住它,後面須要用到它進行密碼重置。
接下來繼續執行
mysqld --install MySQL8
若出現Service successfully installed.表示安裝成功。
繼續在CMD執行以下命令:
net start mysql8
(net stop mysql8 是中止服務,sc delete mysql8是刪除服務)
一樣在bin目錄下,執行
mysqld -nt --install
用來開機時自動啓動此服務。
一樣在bin目錄下,執行:
mysql -uroot -p
而後輸入初始密碼。
進入mysql後,執行重置密碼指令:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密碼';
安裝前請中止全部正在運行中的數據庫服務,詳見2.3操做步驟。
另外數據庫的版本號儘可能保持相同,以下圖,我使用mysql-8.0.20-winx64做爲主數據庫,mysql-8.0.20-winx64-2做爲從數據。
不論是主數據庫仍是從數據庫,安裝配置的步驟跟上面第二步安排mysql8是相似的。
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
帳號admin01,密碼admin123456
CREATE USER admin01@'%' IDENTIFIED WITH 'mysql_native_password' BY 'admin123456'; GRANT REPLICATION SLAVE ON *.* TO admin01@'%'; FLUSH PRIVILEGES;
show master status\G;
File的值爲mysql-bin.000004。這個值能夠在my.ini中指定:log_bin-index=master-bin.index,沒有指定的話則由系統自動生成。
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的值
查看主從同步狀態:
show slave status\G;
若是出現Slave_IO_State爲Waiting for master to send event,以及Slave_IO_Running和Slave_SQL_Running爲Yes,則表示從庫已同步主庫成功。