Docker(二)| 創建MySQL容器並持久化


Docker(二)| 創建MySQL容器並持久化


  1. 下載 mysql 鏡像,命令:
docker pull mysql:5.7
  1. 創建 mysql 容器並設置掛載持久化和密碼root,命令:
docker run -d -p 3306:3306 --name mysql -v /data/mysql:/data/mysql -e MYSQL_ROOT_PASSWORD=root mysql:5.7
  • -d:守護進程
  • -p 3306:3306:映射主機和容器之間的端口
  • –name mysql:容器別名
  • -v /data/mysql:/data/mysql:掛載/共享主機上的/data/mysql,方便持久化,不至於每次停止mysql容器都丟失數據
  • -e MYSQL_ROOT_PASSWORD=root:設置數據庫的密碼爲:root
  1. 進入 mysql 容器,命令
docker exec -it mysql bash
  1. 設置 utf8 編碼格式
    查看mysql字符集,如果是以下的utf8則不需要設置編碼格式,如果是latin1編碼格式則需要
show variables like 'character_set_%';

在這裏插入圖片描述
執行命令:

vi /etc/mysql/my.cnf

找到 /etc/mysql/my.cnf 文件,然後編輯,加入下面的配置,沒有則加上,有則修改

[client]                   
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci

如果vim命令不能用,提示:bash: vim: command not found
參考:Docker 問題 | 編輯文件出現 bash: vi: command not found.

  1. 重啓mysql,輸入下面命令:
service mysql restart
  1. 這時會停止容器,所以我們要再啓動容器:
docker start mysql
  1. 再進入 mysql 容器,命令
docker exec -it mysql bash
  1. 導入 sql 腳本,在外面我有個 smart_remmend.sql 的腳本,裏面包含創建表結果和導入數據。

sql腳本創建:通過Navicat,選中數據庫—>右鍵—>選擇轉儲SQL文件—>結構和數據
在這裏插入圖片描述

通過Xftp軟件放入上面第二步的主機掛載/共享的目錄下,然後切換到掛載/目錄下
在這裏插入圖片描述
執行命令:

docker cp smart_recommend.sql mysql:/data/mysql

意思是將主機上的smart_recommend.sql文件複製到mysql容器下的/data/mysql目錄,因爲是掛載/共享目錄

導入如果出現這個:data too long for column ‘name’ at row 1
就需要設置編碼,重新查看第4步

  1. 登陸mysql,命令:
mysql -uroot -p

再輸入密碼(由於前面初始化設置了,密碼就是:root

  1. 執行sql腳本
    首先創建名字爲smart_recommend的數據庫,命令:
create database smart_recommend;

使用smart_recommend數據庫,命令:

use smart_recommend;

執行sql腳本,命令:(後面是sql腳本在容器中的路徑)

source /data/mysql/smart_recommend.sql
  1. 在Windows上用Navicat登錄 mysql 容器
    查看虛擬機ip命令:ip a
    端口號:3306
    得到ip和端口,再使用用戶名:root,密碼:root 登錄即可

登錄成功後如果看到數據庫中的字段裏的中文值出現亂碼,參考第4步


注意:

如果測試是否持久化,將上面步驟走完後,將mysql容器停止,再啓動mysql容器,查看上面導入的數據是否存在即可


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