メインCENTOS7からMySQLのインストールyumを
初期の環境
192.168.1.8マスター
192.168.1.9スレーブ
ファイアウォールをオフにします
systemctlストップfirewalld
setenforce 0
MySQLをインストールします。
yumをmariadb mariadb-サーバーをインストール-y
編集マスターmy.conf
サーバID = 1
ログ・ビン= mysqlのビン
启动数据库
systemctlスタートmariadb
データベースへのアクセス
mysqlの
地元の作成
*上のすべてを許可*に「slave'@'192.168.1.15」「123」によって識別されます。
フラッシュ権限;
マスターのステータスを表示。
+------------------+----------+--------------+---------------------------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+---------------------------------------------+
| mysql-bin.000003 | 459 | | information_schema,performance_schema,mysql |
+------------------+----------+--------------+---------------------------------------------+
別のものを入力します。
編集スレーブのmy.cnf
log-bin=myql-bin
server-id=2
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.8
Master_User: slave
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000003
Read_Master_Log_Pos: 459
Relay_Log_File: mariadb-relay-bin.000002
Relay_Log_Pos: 529
Relay_Master_Log_File: mysql-bin.000003
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
(ここでは、成功した、二重そうであるように思わなければなりません)
1、なステートメントモードは:、ベースのSQLステートメント(ステートメントベースのレプリケーション、SBR)をコピー
各修正するデータのSQLステートメントはバイナリログに記録されます。
長所:パフォーマンスを改善するために、ディスクIOを減らし、このログのbinlogは比較的小さくなりますように、各ライン内のすべてのSQL文とデータ変更を記録する必要はありません。
缺点:在某些情况下会导致master-slave中的数据不一致(如sleep()函数, last_insert_id(),以及user-defined functions(udf)等会出现问题)
2、基于行的复制(row-based replication, RBR):
不记录每一条SQL语句的上下文信息,仅需记录哪条数据被修改了,修改成了什么样子了。(不记录sql执行过程,只记录结果!)
优点:不会出现某些特定情况下的存储过程、或function、或trigger的调用和触发无法被正确复制的问题。
缺点:会产生大量的日志,尤其是alter table的时候会让日志暴涨。
3、混合模式复制(mixed-based replication, MBR):以上两种模式的混合使用,
一般的复制使用STATEMENT模式保存binlog,对于STATEMENT模式无法复制的操作使用ROW模式保存binlog,MySQL会根据执行的SQL语句选择日志保存方式。
mysql 主从复制的作用:
1、主数据库出现问题,可以切换到从数据库。
2、可以进行数据库层面的读写分离。
3、可以在从数据库上进行日常备份。