mysql搭建手册
mysql搭建手冊
主從搭建
搭建mysql
關閉防火墻:systemctl stop firewalld 如果失敗先安裝 yum install iptables-services
配置數據庫 /etc/my.cnf,配置同步數據庫等
-
主庫配置信息
[mysqld] datadir=/usr/local/mysql/data log-error=/usr/local/mysql/data/error.log port = 3306 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES symbolic-links=0 max_connections=400 innodb_file_per_table=1 #表名大小寫不明感,敏感為 lower_case_table_names=1 #主從配置 #服務的唯一編號 server-id=1 #每次執行寫入操作binlog和磁盤同步 sync-binlog=1 # 開啟mysql binlog功能 log-bin = mysql-bin # binlog記錄內容的方式,記錄被操作的每一行 binlog_format = ROW # 減少記錄日志的內容,只記錄受影響的列 binlog_row_image = minimal # 指定需要同步復制的數據庫名,不指定其它庫都會同步操作 binlog-do-db = lagou #忽略的庫 binlog_ignore-db=performance_schema binlog_ignore-db=information_schema binlog_ignore-db=sys -
從庫配置:
[mysqld] datadir=/usr/local/mysql/data log-error=/usr/local/mysql/data/error.log port = 3306 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES symbolic-links=0 max_connections=400 innodb_file_per_table=1 #表名大小寫不明感,敏感為 lower_case_table_names=1 #主從配置 #服務的唯一編號 server-id=2 #每次執行寫入操作binlog和磁盤同步 sync-binlog=1 # 開啟mysql binlog功能 log-bin = mysql-bin # binlog記錄內容的方式,記錄被操作的每一行 binlog_format = ROW # 減少記錄日志的內容,只記錄受影響的列 binlog_row_image = minimal # 指定需要同步復制的數據庫名,不指定其它庫都會同步操作 binlog-do-db = lagou #忽略的庫 binlog_ignore-db=performance_schema binlog_ignore-db=information_schema binlog_ignore-db=sys #修改從庫relay log名字 relay_log=mysql-relay-bin #修改只讀 read_only=1
服務重啟 systemctl restart mysqld
開放遠程連接權限,進入mysql命令行:
- grant replication slave on . to ‘root’@’%’ identified by ‘root’;
- grant all privileges on . to ‘root’@’%’ identified by ‘root’; flush privileges;
- show master status;
修改從庫配置信息:
-
指定唯一服務id:server-id
-
修改從庫relay log名字:relay_log=mysql-relay-bin
-
修改只讀:read_only=1
注意:普通的應用用戶進行insert、update、delete等會產生數據變化的DML操作時,都會報出數據庫處于只讀模式不能發生數據變化的錯誤,但具有super權限的用戶,例如在本地或遠程通過root用戶登錄到數據庫,還是可以進行數據變化的DML操作;
配置master連接,進入mysql命令行:
-
change master to master_host=‘39.96.204.209’, master_port=3306,master_user=‘root’,master_password=‘root’,master_log_file=‘mysql-bin.000001’,master_log_pos=154;
注意master_log_pos配置信息可以在master的mysql中查看
-
開啟從庫:start slave;
-
查看轉態:show slave status \G;
創建數據庫表:
- CREATE TABLE position_detail (
id int(11) NOT NULL AUTO_INCREMENT,
pid int(11) DEFAULT NULL,
description text,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8; - CREATE TABLE position (
id int(8) NOT NULL AUTO_INCREMENT,
name varchar(255) DEFAULT NULL,
salary varchar(10) DEFAULT NULL,
city varchar(255) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
查看創建的數據表是否同步到從庫中,至此主從搭建完成
主從搭建-半同步復制方式
安裝插件,進入mysql命令行,記得主從都需要安裝插件:
-
查看是否支持動態加載:select @@have_dynamic_loading;
-
查看插件:show plugins;
-
安裝插件:install plugin rpl_semi_sync_master soname ‘semisync_master.so’;
-
查看半同步復制參數信息:show variables like ‘%semi%’;
-
開啟半同步OFF->NO,以及設置temeout:
- set global rpl_semi_sync_master_enabled=1;
- set global rpl_semi_sync_master_timeout=1000;
- show variables like ‘%semi%’;
-
命令行重啟從庫重啟:
- stop slave;
- start slave;
-
在主庫添加寫,從庫查看是否正常,如果發現從庫沒有同步
-
show slave status \G;
)
由于主鍵沖突導致日志同步失敗,刪除沖突數據即可。
從庫沖突錯誤:https://www.cnblogs.com/langdashu/p/5920436.html
-
MHA高可用架構搭建
? 使用三臺機器來完成本次MHA的搭建:
IP 主機名 系統版本 角色 節點 172.25.5.1 weijie1 Centos master node node1 172.25.5.2 weijie2 Centos slave1 node node2 172.25.5.3 weijie3 Centos slave2 node+manager node3MHA下載:
wget https://github.com/yoshinorim/mha4mysql-manager/releases/download/v0.58/mha4mysql-manager-0.58.tar.gz wget https://github.com/yoshinorim/mha4mysql-node/releases/download/v0.58/mha4mysql-node-0.58.tar.gz配置集群免密登錄:所有節點都要操作
cd /root/.ssh/ ssh-keygen -t dsa -P '' -f id_dsa cat id_dsa.pub >> authorized_keys主庫接收slave上的密鑰
scp 172.25.5.3:/root/.ssh/authorized_keys ./authorized_keys.3 scp 172.25.5.4:/root/.ssh/authorized_keys ./authorized_keys.4MHA沒有搭建成功,日后補充吧!!!
總結
- 上一篇: java.lang.NoSuchMeth
- 下一篇: java Trie实现英文单词查找树