---
# System prepended metadata

title: Mariadb 交接文件

---

# 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
```