搭建一些個人專案時,使用docker
能夠非常方便的進行一些基礎服務的建立。
這是mysql
的官方映象位址
冒號後面跟的是資料庫版本,我選擇的版本是mysql 5.7
#docker pull mysql:5.7
# docker images
repository tag image id created size
docker.io/mysql 5.7 a347a5928046 3 days ago 545 mb
啟動服務$ docker run --name some-mysql -v /data/mysql/conf.d:/etc/mysql/conf.d -v /data/mysql/data:/var/lib/mysql -e mysql_root_password=123456 -p 3306:3306 -d mysql:5.7
mysql_root_password
指定資料庫密碼
-p 3306:3306
暴露容器埠
-v /data/mysql/conf.d:/etc/mysql/conf.d
將容器內的mysql
配置檔案對映到主機上,方便資料庫的配置
-v /data/mysql/data:/var/lib/mysql
將容器內的資料對映到主機上,之所以要把資料對映出來,是為了保護資料,之後會講
-d
表示後台執行
執行成功後,資料庫執行起來,可以通過docker ps
檢視
# docker ps
container id image command created status ports names
245fc2507040 mysql:5.7 "docker-entrypoint..." 6 minutes ago up 6 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp some-mysql
245fc2507040
即為我們執行的資料庫例項
可以看到,在主機上建立的兩個目錄,data
即為資料庫的資料
# tree -l 2 /data
/data
└── mysql
├── conf.d
└── data
資料保護
插入一些模擬資料
新建了乙個share
庫,並建了一張表table_test
,插入了一條hello
資料
在/data/mysql/data
下執行ls
命令,可以看見建立的資料庫:
刪除資料庫例項
現在我們模擬資料庫例項出了問題,把上面建立的例項刪除
docker stop 245f
docker rm 245f
建立新的例項,載入舊時資料
現在重新建立新的例項
$ docker run --name some-mysql -v /data/mysql/conf.d:/etc/mysql/conf.d -v /data/mysql/data:/var/lib/mysql -e mysql_root_password=123456 -p 3306:3306 -d mysql:5.7
重新整理之後,發現資料依然存在。這樣即便某個docker
例項掛掉了,只要資料還在,就能快速的恢復。也能非常方便的將資料遷移到更好的機器上。
tips: 資料庫的版本最好要一致建立新表報 errorno 13
後來建立新錶時,會報乙個errorno 13
的錯誤,經查,是資料庫許可權問題:
執行命令,修改許可權,即可解決這個問題chown polkitd:input -r share/
基於docker安裝MySQL
為了更好的管理,打算把mysql redis等服務放在虛擬機器中統一部署,這樣不會因為這些服務的問題影響到系統本身。前段時間正好在看docker相關的內容,打算在虛擬機器中通過docker來使用mysql等服務。這次先記錄安裝mysql的過程。yum y install docker 複製 dock...
基於Docker搭建mysql的PXC集群
docker官網 3.pxc映象 percona percona xtradb cluster 5.7.22 1.這裡博主特別說明一下,之前實踐pxc的時候直接docker pull 乙個最新版本的percona percona xtradb cluster 用於搭建pxc集群的最重要工具 結果搞了...
docker建立mysql容器,go語言使用
docker pull mysql 二 建立容器 docker run name mysql it p 3306 3306 e mysql root password emc123123 d mysql 在後台啟動mysql容器 name指定了容器的名稱,方便之後進入容器的命令列,mysql roo...