Docker建立Mysql容器並通過命令列連線到容器
拉取網易蜂巢的mysql-server:5.6
docker pull hub.c.163.com/nce2/mysql:5.6
建立mysql5.6容器 1master+3個slave
docker run --name mysql-master -d -P hub.c.163.com/nce2/mysql:5.6
docker run --name mysql-slave1 -d -P hub.c.163.com/nce2/mysql:5.6
docker run --name mysql-slave2 -d -P hub.c.163.com/nce2/mysql:5.6
docker run -- name mysql-slave3 -d -P hub.c.163.com/nce2/mysql:5.6
驗證容器狀態
[[email protected] ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
907bbbf25d25 hub.c.163.com/nce2/mysql:5.6 "/run.sh" 5 minutes ago Up 5 minutes 3306/tcp mysql-slave3
a81df6c86808 hub.c.163.com/nce2/mysql:5.6 "/run.sh" 5 minutes ago Up 5 minutes 3306/tcp mysql-slave2
375eabd4c598 hub.c.163.com/nce2/mysql:5.6 "/run.sh" 5 minutes ago Up 5 minutes 3306/tcp mysql-slave1
1651d1cab219 hub.c.163.com/nce2/mysql:5.6 "/run.sh" 14 minutes ago Up 14 minutes 3306/tcp mysql-master
通過主機命令列進入master容器
docker exec -it mysql-master bash
[root@bogon ~]# docker exec -it mysql-master bash
root@1651d1cab219:/#
在master中建立一個數據庫test_docker
[email protected]:/# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.6.19-v1-log MySQL Community Server (GPL)
Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| #bak_database |
| mysql |
| performance_schema |
| test |
+--------------------+
5 rows in set (0.02 sec)
mysql> create database test_docker;
Query OK, 1 row affected (0.06 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| #bak_database |
| mysql |
| performance_schema |
| test |
| test_docker |
+--------------------+
6 rows in set (0.00 sec)
在slave1中建立一個數據庫test_docker
[[email protected] ~]# docker exec -it mysql-slave bash
Error response from daemon: No such container: mysql-slave
[[email protected] ~]# docker exec -it mysql-slave1 bash
[email protected]375eabd4c598:/# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.6.19-v1-log MySQL Community Server (GPL)
Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| #bak_database |
| mysql |
| performance_schema |
| test |
+--------------------+
5 rows in set (0.00 sec)
通過以上的資訊說明master與slave是資料隔離的,
所以我們可以通過docker建立N個mysql容器,
然後就能以很小的代價就能學習《高可用MySQL》中的資料模型 再也不用發愁機器不夠用。
後續操作 – 登入到master容器
[root@bogon ~]# docker exec -it mysql-master bash
root@1651d1cab219:/#
怎麼檢視容器的作業系統環境
一般就是
uname -a
cat /etc/pro
cat /etc/lsb-release
很幸運我們的容器是ubuntu14.04
[email protected]:/# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.3 LTS"
但是執行 apt-get install時候卻什麼也裝不了
需要更改
cd /etc/apt/
沒有 vi vim ee 編輯器 只好追加內容到 sources.list
echo deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse >> sources.list
echo deb http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse >> sources.list
echo deb http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse >> sources.list
echo deb http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse >> sources.list
echo deb http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse >> sources.list
echo deb-src http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse >> sources.list
echo deb-src http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse >> sources.list
echo deb-src http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse >> sources.list
echo deb-src http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse >> sources.list
echo deb-src http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse >> sources.list
然後 更新源
apt-get update
apt-get install vim
然後通過vim把sources.list檔案的前兩行刪除掉 再重新update一下。
apt-get update
安裝一個網路工具獲取ip
apt-get install net-tools
獲取到master的ip地址
root@1651d1cab219:/# ifconfig
eth0 Link encap:Ethernet HWaddr 02:42:ac:11:00:02
inet addr:172.17.0.2 Bcast:0.0.0.0 Mask:255.255.0.0
inet6 addr: fe80::42:acff:fe11:2/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:15119 errors:0 dropped:0 overruns:0 frame:0
TX packets:12633 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:34197557 (34.1 MB) TX bytes:897732 (897.7 KB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:22 errors:0 dropped:0 overruns:0 frame:0
TX packets:22 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2212 (2.2 KB) TX bytes:2212 (2.2 KB)
slave也需要這麼做
還有一種方法
可以建立Dockerfile依賴mysql映象建立一個新的映象。
上訴命令通過RUN來執行建立的新容器會有安裝的軟體。
最後通過slave的docker連線到master的容器mysql伺服器上
master的伺服器mysql賬號root賦值許可權
mysql> grant all privileges on *.* to [email protected]'%' identified by '';
Query OK, 0 rows affected (0.02 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)
slave伺服器執行如下命令
[[email protected] ~]# mysql -uroot -p -h 172.17.0.2
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.6.19-v1-log MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]>
在master上將test_docker資料庫刪除,看slave的終端是否也不顯示已刪除的庫
master操作
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| #bak_database |
| mysql |
| performance_schema |
| test |
| test_docker |
+--------------------+
6 rows in set (0.00 sec)
mysql> drop database test_docker;
Query OK, 0 rows affected (0.06 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| #bak_database |
| mysql |
| performance_schema |
| test |
+--------------------+
5 rows in set (0.00 sec)
slave操作
MySQL [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| #bak_database |
| mysql |
| performance_schema |
| test |
+--------------------+
5 rows in set (0.00 sec)
MySQL [(none)]>
相關推薦
Docker建立Mysql容器並通過命令列連線到容器
拉取網易蜂巢的mysql-server:5.6 docker pull hub.c.163.com/nce2/mysql:5.6 建立mysql5.6容器 1master+3個slave docker run --name mysql-
通過composer 安裝 tp5 並通過命令列建立一個控制器
首先開啟命令列將檔案目錄切換到要安裝Tp5的目錄下執行composer create-project topthink/think tp5 dev-master --prefer-dist得到此時TP5就安裝成功了 將目錄切換到TP5目錄裡執行 PHP think make:
docker建立nginx映象 並cmd命令啟動
開發十年,就只剩下這套架構體系了! >>>
Docker建立MySQL映象併成功進行遠端連線
1.安裝 1.1 拉取映象 docker pull mysql 拉取成功可以驗證一下 docker images 1.2 建立並啟動一個mysql容器 docker run --name ly-mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d
CentOS通過命令列連線無線
1.關閉NetworkManager服務,開啟network服務,以root許可權執行 #chkconfig --level 2345 NetworkManager off #chkconfig --level 2345 network on #service
mysql通過命令列建立資料庫
1.語法: CREATE DATABASE IF NOT EXISTS 資料庫名稱 DEFAULT CHARSET 預設編碼集 COLLATE 校對規則 2.語法解析: IF NOT EXISTS:如果該資料庫不存在則建立,存在則不建立,避免了建立資料庫的錯誤 DEFAULT CHARSET
mysql通過命令列建立表
mysql通過命令列建立表 1.語法: CREATE TABLE IF NOT EXISTS 表名稱 ( 欄位1 [AS 別名] 欄位型別 [約束條件] [DEFAULT 預設值] [COMMENT 註釋], 欄位2 [AS 別名]&nbs
mysql通過命令列刪除資料庫
mysql通過命令列刪除資料庫 1.語法: DROP DATABASE IF EXISTS 資料庫名稱; 2.語法解析: IF EXISTS:判斷資料庫是否存在,如果存在則刪除對應的資料庫,如果不存在避免了產生執行刪除的錯誤 3.示例: # 刪除資料庫名稱為demo1的資料庫 DRO
OA信用盤 殺大賠小mysql通過命令列刪除資料庫
mysql通過命令列刪除資料庫 OA信用盤 殺大賠小【地瓜原始碼論壇diguaym.com】聯絡方式:QQ:2152876294 1.語法: DROP DATABASE IF EXISTS 資料庫名稱; 2.語法解析: IF EXISTS:判斷資料庫是否存在,如果存在則刪除對應的資料庫,如
Docker 建立 mysql 容器
docker -v Docker version 18.06.1-ce, build e68fc7a 拉取 docker mysql 最新的映象 docker pull mysql Using default tag: lates
Docker建立映象檔案並在容器中執行
1.如何建立映象檔案 首先找到Docker ToolBox安裝的路徑,在路徑下直接新建Dockerfile檔案 在Dockerfile檔案裡寫入的內容為: FROM docker/whalesay:latest RUN apt-get -y update && apt-get inst
通過命令列建立Oracle的使用者
CREATE USER acaizi IDENTIFIED BY admin DEFAULT TABLESPACE 表空間名 QUOTA UNLIMITED ON 表空間名 ;GRANT CONNEC
通過go語言執行可執行程式並獲得命令列輸出的方法
首先,通過go語言執行可執行程式需要用到os/exec包 package exec import "os/exec" exec包執行外部命令 步驟: 寫一個go語言小程式並通過go build命令來編譯成可執行檔案p
Docker建立MySQL容器
本文目的是建立一個MySQL的image,並且在新創建出來的容器裡自動啟動MySQL服務接受外部連線步驟:1. 首先建立一個目錄並在目錄下建立一個Dockerfile,檔案內容如下FROM centos:centos6 MAINTAINER Fanbin Kong "[ema
LINUX通過命令列操作MYSQL
啟動:service mysqld start; 進入:mysql -u root -p/mysql -h localhost -u root -p databaseName; 列出資料庫:show databases; 建立資料庫:create databa
命令列連線 MySQL 資料庫並進行授權
登入 MYSQL 資料庫 在 win10 ,需要開啟管理員的命令列視窗(Windows PowerShell(管理員)A),沒有管理員許可權會導致登入失敗。 執行命令: mysql -hloc
Mac如何通過命令列Mysql操作資料庫
連線資料庫 mysql -u '資料庫名' -p enter '資料庫密碼' 建立一個名字為NickYang資料庫 create database NickYang; 修改資料庫編碼 alter database NickYang ch
怎樣通過命令列設定mysql資料庫密碼
1.先進入MySQL命令列客戶端,輸入:flush privileges; 重新讀授權表,回車; 2.輸入: use mysql 使用mysql 這個表, 3.update user set password=password('mypwd') where user='
進入docker容器並執行命令的的3中方法
hour -a cas from 自動退出 gin ron tac net 進入docker容器並執行命令的的3中方法 docker exec nsenter docker attach "container" 建議使用nsenter, exec有時候
transfer.sh:通過命令列簡單的建立檔案分享
開發十年,就只剩下這套架構體系了! >>>