Docker部署MySQL容器
阿新 • • 發佈:2019-01-03
從倉庫下載映象
sudo docker pull mysql:5.7
建立容器
docker run --name="mysql" \
-p 3306:3306 \
-v /Users/zhangsan/docker/mysql/data:/var/lib/mysql \
-v /Users/zhangsan/docker/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7
備註: --name="mysql" 給容器取名mysql -p 3306:3306 將容器內埠3306對映到宿主機埠3306上,前宿主機:後容器 -v /Users/zhangsan/docker/mysql/data:/var/lib/mysql 將宿主機目錄/Users/zhangsan/docker/mysql/data掛載到容器目錄/var/lib/mysql,將資料儲存到宿主機目錄方便檢視。/var/lib/mysql容器目錄為mysql預設的資料儲存目錄。 -d 後臺執行容器,並返回容器ID -v /Users/zhangsan/docker/mysql/conf.d:/etc/mysql/conf.d 如果需要自定義的引數,可以新建一個config-file.cnf檔案,將引數配置到裡面放到宿主機某一個目錄,並將該目錄掛載到容器的/etc/msyql/conf.d目錄中,mysql啟動的時候回讀取覆蓋預設配置 -e MYSQL_ROOT_PASSWORD=123456 設定root密碼 -d 後臺執行容器,並返回容器ID備份資料
docker exec mysql sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > ~/docker/mysql/backup/all-databases.sql
備註:
~/docker/mysql/backup/all-databases.sql 這個是宿主機的全路徑
進入mysql容器內
docker exec -it mysql bash 備註: 通過該命令,命令列就會進入容器內部系統,後面就可以像操作普通linux系統一樣操作容器系統了通過上述映象可以連結其他mysql服務
docker run -it --rm mysql mysql -h'192.168.0.10' -P 10050 -u'root' -p'123456'
關於msyql8.0.4以上密碼加密方式改變
default-authentication-plugin 的值由 mysql_native_password 變為了caching_sha2_password 新的加密方式原來的Navicat客戶端連線不上,可通過修改使用者密碼為老的加密方式,或者將加密方式改為老的加密方式 1、修改使用者密碼,新建使用者的時候也是用老的加密方式: ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; CREATE USER test IDENTIFIED WITH mysql_native_password BY '123456'; 2、修改加密方式,在配置檔案中覆蓋配置項 default-authentication-plugin=mysql_native_password
檢視mysql所有的可配置項及其預設值
docker run -it --rm mysql --verbose --help