# Mariadb 交接文件 ### 進入伺服器 * 進入cmd ``` ssh if_888@163.14.137.58 -p 20 ``` * 查看docker李images檔 ``` sudo docker images ``` * 安裝程式在docker ``` sudo docker run --name [名字] -p port:原本的port -d mariadb ex. sudo docker run --name [名字] -p 8095:3306 -d mariadb # 8095:連外 # 3306:mariadb port ``` * 運行狀態 ``` sudo docker ps ``` * 停止運行 ``` sudo docker stop [名字] ``` * 刪除 ``` sudo docker rm [名字] ``` * 進入mariadb ``` sudo docker exec -it [名字] bash EX. sudo docker exec -it mariadb-simi bash ``` 進去操作設定權限 - 參考文件 - [docker建立mariadb](https://mariadb.com/kb/en/installing-and-using-mariadb-via-docker/) * 搜尋指令關鍵字 [名字] cmd command maria db ### 權限設定篇 -- 琪 ##### 要先進入 contaioner 裡的mariadb ``` mysql -u root -p // 使用root 權限進入的 // 這邊會告訴你要輸入密碼 > 密碼:simi ## 列出所有使用者帳號權限 mariadb> SELECT User,Host FROM mysql.user; ## 新增使用者的權限 mariadb> CREATE USER '使用者名稱'@'localhost' IDENTIFIED BY '使用者的密碼'; ex: mariadb> CREATE USER 'chichi'@'localhost' IDENTIFIED BY 'chichi'; ## 刷新權限 mariadb> flush privileges; ## 移除權限 mariadb> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'dbuser'@'localhost'; ## 移除帳號 mariadb> DROP USER 'dbuser'@'localhost'; ``` - 參考文件 - [流程](https://blog.csdn.net/weixin_49329814/article/details/108547290) - [新增權限](http://benjr.tw/97973) - [刪除權限](https://www.opencli.com/mysql/mysql-mariadb-delete-user-accounts-grants) ### MariaDB-simi ---芳君 #### 帳密 > 帳號:ALGORITHM > 密碼:ALGORITHM ![](https://i.imgur.com/aR8drup.jpg) #### 可以對TOPIC_MODEL進行的權限 >1.Create 2.Select 3.Insert 4.Update 5.Drop 6.ALTER ![](https://i.imgur.com/DizpjhP.jpg) [docker save] (https://docs.docker.com/engine/reference/commandline/save/) --- ### **打包環境**--芳君篇 > docker container 跟 資料庫的資料,兩者分別在伺服器壓縮,接著再要部署的伺服器先import docker container,再將資料.gz匯入進建立好的docker container ** window使用Git bash ## Step1 #### 匯出容器,建立壓縮檔案,匯出的檔案儲存為“gzip”檔案 ``` docker export container-name | gzip > container-name.gz ``` ## Step2 #### 資料庫資料包打包成 .tar.gz ``` tar zcvf db.tar.gz [資料夾] EX.tar zcvf db.tar.gz db ``` **使用Filezilla連線伺服器,下載gz檔案** ## Step3 #### 匯入容器 要從本機匯入一個映像檔,在本機端執行 ``` cat container-name.gz | docker import - [image name:tag標籤] EX. cat mariadb_simi.gz | docker import - mariadb_v1 ``` ## Step4 #### 在本機端,創建mariadb docker container ``` docker run --name mariadb_ffsr -e MYSQL_ROOT_PASSWORD=mypass -p 8095:3306 -d mariadb_v1 docker-entrypoint.sh mysqld ``` * 要加上 docker-entrypoint.sh mysqld 不同路徑 > password=mypass --- ### 可能遇到的error * docker run出現 Error response from daemon: No command specified. [解決方法](https://web.kmp.tw/post/dockerrunerrornocommandspecified/) 1. 主要是因為docker export是導出文件系統,而不是container內的所有東西,所以在其他地方匯入時,需要指定command來讓他執行,所以要回到舊的docker server查一下 ``` docker ps CONTAINERID IMAGE COMMAND CREATED STATUS PORTS NAMES 1232312312 test:latest "/bin/bash" 5 months ago Up 10 weeks test ``` 2. 這裡就會看到他的command是在/bin/bash,所以我們就可以在新的機器下該指令 3. 但是command可能顯示不完全,[解決方法](https://stackoverflow.com/questions/27380641/see-full-command-of-running-stopped-container-in-docker) ==> See full command of running/stopped container in Docker ``` docker ps --no-trunc ```