1. 程式人生 > >Docker部署MySQL容器

Docker部署MySQL容器

從倉庫下載映象
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