---
# System prepended metadata

title: MySQL

---

1. 創建容器並運行:
```bash!
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=PASSWORD -d mysql:8.0
```
2. docker中運行my sql 避免中文輸入問題：
```bash!
docker exec -it mysql env LANG=C.UTF-8 bash
```
3. 查看運行狀態：```docker ps```
4. docker進入容器：```docker exec -it mysql bash```
5. 登入mysql:```mysql -uroot -p```
6. ```docker exec -it mysql mysql -uroot -p```
7. 停止容器：```docker stop [容器名稱]```
8. 啟動容器：```docker start [容器名稱]```
9. 查看log : ```docker logs [容器名稱]```
10. 檢查使用者權限：```SELECT host, user FROM mysql.user;```
11. 顯示資料庫：```SHOW DATABASES;```
12. 顯示資料表：```SHOW TABLES;```
13. 創建資料庫：```create database testdatabase; ```
14. 使用資料庫：```use [database名稱];```
15. 建立資料表：
```
drop table if exists app_info;
create table app_info (
    id int auto_increment primary key ,
    name nvarchar(50),
    version nvarchar(30),
    author nvarchar(50),
    remark nvarchar(100)
);
```
16. 刪除資料表內資料：```DELETE FROM MES_STRIP;```
17. 建立使用者：```CREATE USER 'yuyu'@'192.168.103.%' IDENTIFIED BY 'PASSWORD';```
18. 授予使用者從遠端主機連線的權限：```GRANT ALL PRIVILEGES ON testdatabase.* TO 'yuyu'@'192.168.103.%';```
19. 套用變更：```FLUSH PRIVILEGES;```
20.  ```SHOW TABLE STATUS FROM [db_name]```︰列出資料庫的資料表，提供比較詳細的訊息。
21. ```SHOW COLUMNS FROM tbl_name FROM [db_name]```︰列出資料表的欄位，同
 ```SHOW FIELDS FROM tbl_name [FROM db_name]，DESCRIBE tbl_name [col_name]```。
 ```SHOW FULL COLUMNS FROM tbl_name [FROM db_name]```︰列出資料表的欄位，提供比較詳細的訊息，同 ```SHOW FULL FIELDS FROM tbl_name [FROM db_name]```。
22. ```SHOW INDEX FROM tbl_name [FROM db_name]```︰列出資料表的索引訊息。
23. ```SHOW STATUS```︰列出 Server 的狀態訊息。
24. ```SHOW VARIABLES```︰列出 MySQL 系統變數的值。 
25. ```SHOW PROCESSLIST```︰顯示哪個執行緒正在運行。 
26. ```SHOW GRANTS FOR user```︰列出對一個用戶必須發出以重複授權的授權命令。
