docker mysql 主主配置

1:準備兩個虛擬機

1)192.168.0.212 mysqlA

2)192.168.0.166 mysqlB

2:啓動docker中的mysql

  docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.5 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

3:進入容器內修改配置 docker exec -it 6dbfb2fb3cda /bin/bash

1)6dbfb2fb3cda  爲mysql的容器id,可在docker ps中查看啓動的mysql

 

 

2)找到 進入路徑 cd etc/mysql  修改cd my.cnf文件 我用vim打開

如果沒有可以下載  執行 apt-get update==>apt-get install vim

注意:my.cnf中的 binlog-do-db=db_dbs_config #是要同步的數據庫 mysqlA和mysqlB一定要相同

 

192.168.0.212 mysqlA  的配置文件vim my.cnf修改爲

[mysqld]

skip-name-resolve

 

server-id=1 #必須與其他服務器不同,且必須爲1到232–1之間的一個正整數值

 

#i am master

 

log-bin=mysql-bin #二進制文件

 

binlog-do-db=db_dbs_config #要同步的數據庫

 

binlog-ignore-db=information_schema#不同步的數據庫

 

binlog-ignore-db=db_Im

 

binlog-ignore-db=db_Mdr

 

binlog-ignore-db=db_mrs

 

binlog-ignore-db=mysql

 

binlog-ignore-db=performance_schema

 

binlog-ignore-db=test

 

slave-skip-errors=1032,1062

 

192.168.0.166 mysqlB  的配置文件vim my.cnf修改爲

 

[mysqld]

skip-name-resolve

server-id=2

 

#i am master

 

log-bin=mysql-bin

 

binlog-do-db = db_dbs_config

 

binlog-ignore-db=information_schema

 

binlog-ignore-db=db_Im

 

binlog-ignore-db=db_Mdr

 

binlog-ignore-db=db_mrs

 

binlog-ignore-db=mysql

 

binlog-ignore-db=performance_schema

 

binlog-ignore-db=test

 

slave-skip-errors=1032,106

3)重啓mysql

4:允許root遠程訪問

1)進入mysql容器內(第三條第一點有如何進入容器),連接mysql

命令:mysql - uroot -proot

2)選擇mysql數據庫  

命令:use mysql

3)修改遠程登錄權限

mysql> SELECT User, Password, Host FROM user; -- 查看現有用戶,密碼及允許連接的主機

+------+----------+-----------+  

| User | Password | Host      |  

+------+----------+-----------+  

| root |          | localhost |  

+------+----------+-----------+

執行命令給 root用戶賦權限

GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.100' IDENTIFIED BY '' WITH GRANT OPTION;  指定 192.168.1.100可以訪問,如果想不限制IP  把IP改爲%

5:創建數據庫和該數據庫的用戶,創建一個測試表test,兩個數據庫要相同

6:設置主主

1)在mysqlA 查看A的master  命令 show master status;

記錄   file:mysql-bin.000008  文件

   Position:107  文件讀取點  可以根據該點回復

2)在mysqlB 查看B的master  命令 show master status;

記錄   file:mysql-bin.000005  文件

   Position:256  文件讀取點  可以根據該點回復

3)給A指定B的master

mysql> change master to

    -> master_host='192.168.0.166',

    -> master_user='gaihe',

    -> master_password='gaihe',

    -> master_log_file='mysql-bin.000005',

    -> master_log_pos=256;

4)給B指定A的master

mysql> change master to

    -> master_host='192.168.0.212',

    -> master_user='gaihe',

    -> master_password='gaihe',

    -> master_log_file='mysql-bin.000008  ',

    -> master_log_pos=107;

 

 

 

 

 

 

mysql數據庫命令

grant all on *.* to 'gaihe'@'%';//分配數據庫權限

revoke all on *.* from 'xiaogang' @'%';//收回數據庫權限

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章