安裝mysql
?# 1.搜索鏡像
? ?docker search mysql
?# 2.拉取鏡像
? docker pull mysql
?#3.查看鏡像
?docker images
?#4.啟動(dòng)鏡像
? ? docker run -d -p 3306:3306 --privileged=true \
? ? -v /home/mysql/log:/var/log/mysql \
? ? -v /home/mysql/data:/var/lib/mysql \
? ? -v /home/mysql/conf:/etc/mysql/conf.d \
? ? -e MYSQL_ROOT_PASSWORD=123456 ?\
? ? --name mysql mysql:5.7
?#新建my.cnf 通過容器卷同步給mysql容器實(shí)例
? ? ?[client]
? ? default_character_set=utf8
? ? [mysqld]
? ? collation_server = utf8_general_ci
? ? character_set_server = utf8
#重新啟動(dòng)mysql容器實(shí)例再重新進(jìn)入并查看字符編碼
? ? ?docker restart mysql
? ? ?docker exec -it mysql /bin/bash
? ? ?SHOW VARIABLES LIKE 'character%'
安裝mysql主從復(fù)制
復(fù)制的基本原理:
? ? slave會(huì)從master讀取binlog來進(jìn)行數(shù)據(jù)同步
1. master將改變記錄到二進(jìn)制日志(binary log)。這些記錄過程叫做二進(jìn)制日志事件,binary log events;
2. slave將master的binary log events拷貝到它的中繼日志(relay log);
3. slave重做中繼日志中的事件,將改變應(yīng)用到自己的數(shù)據(jù)庫中。 MySQL復(fù)制是異步的且串行化的
復(fù)制的基本原則
? ? ?每個(gè)slave只有一個(gè)master
? ? ?每個(gè)slave只能有一個(gè)唯一的服務(wù)器ID
? ? ?每個(gè)master可以有多個(gè)salve
復(fù)制的最大問題
? ? 延時(shí)
?
?