Mysql 安裝及配置主從備份
主從備份的意義
它主要是爲了讀寫分離,提高高併發情況下的效率
1、做數據的熱備,作爲後備數據庫,主數據庫服務器故障後,可切換到從數據庫繼續工作,避免數據丟失。
2、架構的擴展。業務量越來越大,I/O訪問頻率過高,單機無法滿足,此時做多庫的存儲,降低磁盤I/O訪問的頻率,提高單個機器的I/O性能。
3、讀寫分離,使數據庫能支撐更大的併發。在報表中尤其重要。由於部分報表sql語句非常的慢,導致鎖表,影響前臺服務。如果前臺使用master,報表使用slave,那麼報表sql將不會造成前臺鎖,保證了前臺速度。
Mysql 安裝
mysql 的服務器在國外,導致在國內下載速度會很慢,我們可以使用國內的鏡像加速。
-
華爲鏡像加速地址 ,https://mirrors.huaweicloud.com/mysql/Downloads/
-
將文件傳到需要部署的服務器,解壓放置到安裝的目錄,將mysql 文件的目錄添加到 系統環境變量中 例如:
E:\software\mysql-5.7.29-winx64\bin
-
在mysql文件目錄下新建 data、logs文件夾,新建 my.ini文件,文件內容爲:
[mysqld] server-id = 1 log_bin = E:\\software\mysql-5.7.29-winx64\logs\mysql-bin.log port = 3306 basedir= E:\software\mysql-5.7.29-winx64\bin datadir= E:\\software\mysql-5.7.29-winx64\data max_connections=200 character-set-server=utf8 default-storage-engine=INNODB sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES skip-grant-tables [mysql] default-character-set=utf8
-
初始化mysql
mysqld --initialize
如果報錯的話,找不到文件
下載文件,安裝上解決問題文件下載地址:
-
安裝爲 mysql 服務
mysqld -install
-
啓動mysql 服務
net start mysql (啓動mysql服務)
-
登錄上修改默認密碼
初始化生成的默認密碼在 data 目錄下的 xxx.err 文件裏,打開文件搜索 root,既可看到隨機生成的默認密碼
登錄數據庫,修改密碼
mysql -uroot -p
flush privileges;
alter user 'root'@'localhost' identified by 'root';
-
Mysql 安裝完成,另外一臺從服務器安裝步驟和上面類似,不同點是 my.ini 文件的
server-id = 1
修改爲server-id = 2
配置主從備份
配置主數據庫
-
創建一個同步用戶
mysql -uroot -p create user 'test'@'%' identified by '123456'; grant replication slave on *.* to 'test'@'%'; flush privileges; show master status;
如果 輸入 show master status 命令後出現如下頁面,就說明主服務器配置完成
配置從服務器
-
設置連接到master主服務器
master_host:主服務器Ubuntu的ip地址
master_log_file: 前面查詢到的主服務器日誌文件名
master_log_pos: 前面查詢到的主服務器日誌文件位置change master to master_host='10.211.55.5', master_user='slave', master_password='slave', master_log_file='mysql-bin.000006', master_log_pos=590;
-
開啓同步
start slave
-
查看同步狀態
show slave statues \G
-
測試是否正常聯通,在主服務器上新建一個數據庫,新建一個表,新建一條記錄,然後去從服務器上去查,看時候存在,如果存在就說明配置正常。
create database test123; show databases; use test123; CREATE TABLE student (id int,name varchar(20)); show tables;
可能出現的問題
修改Mysql root屬性讓root用戶可以遠程登錄
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
主從賦值,從機驗證報錯:ERROR 3021(HY000):this operation cannot be performed with a running salve io thread
1、停止已經啓動的綁定
stop slave
2、重置綁定
reset master
3、執行復制主機命令
change master to master_host = '192.168.12.1'
master_user = 'slave' ,master_password ='123456' ,
master_log_file = 'mysql-bin.000004',master_log_pos = '881'
4、啓動複製
start slave