拉取 MySQL 鏡像
docker pull mysql:8.0
創建并啟動 MySQL 容器
docker run -d \--name mysql8 \-p 3306:3306 \-e MYSQL_ROOT_PASSWORD=123456 \-v mysql_data:/var/lib/mysql \mysql:8.0
命令說明:
-d:后臺運行容器
--name mysql8:給容器起個名字叫 mysql8
-p 3306:3306:將容器的 3306 端口映射到服務器的 3306 端口
-e MYSQL_ROOT_PASSWORD=your_password:設置 root 用戶的密碼,我設置成123456
-v mysql_data:/var/lib/mysql:將數據目錄掛載到卷,確保數據持久化
輸出的一串字符是Docker 容器的唯一 ID
檢查容器是否運行
docker ps
能夠看到MySQL
登錄 MySQL
mysql -u root -p123456
-p后面寫的是自己設置的密碼
出現未找到命令是因為我在宿主機上直接執行了 mysql 命令,但宿主機本身并沒有安裝 MySQL 客戶端工具,我的 MySQL 是安裝在 Docker 容器中的
先進入容器再使用 mysql 命令
使用 docker exec 命令進入容器的 Bash Shell
docker exec -it mysql8 /bin/bash
這里的 mysql8 是之前創建容器時用 --name 指定的名稱
可以看到出現了容器ID
現在再執行登錄命令
mysql -u root -p123456
登錄成功
也可以直接連接 MySQL
可以直接在宿主機執行以下命令,這樣就無需進入容器 Shell
docker exec -it mysql8 mysql -u root -p123456
執行基本 SQL 語句
查看所有數據庫
show databases;
創建一個新數據庫
create database mytestdb;
使用這個數據庫
use mytestdb;
創建一個表
create table students (id int auto_increment primary key,name varchar(50) not null,age int,major varchar(100)
);
在 MySQL 命令行界面中輸入 SQL 語句時,換行不需要特殊的換行符,直接按Enter 鍵即可自動換行。
MySQL 會識別語句是否完整(以分號;結尾),當語句未完成時,按 Enter 鍵會進入續行模式,命令行會顯示->提示符,表示可以繼續輸入下一行內容。
插入數據
insert into students (name, age, major) values
('張三', 20, '計算機科學'),
('李四', 21, '電子工程'),
('王五', 19, '數學');
查詢數據
select * from students;
更新數據
update students set age = 22 where name = '李四';
刪除數據
delete from students where id = 3;
退出操作
退出 MySQL 命令行:
exit; 或 quit;
退出容器:
exit
常用的容器管理命令
停止 MySQL 容器:
docker stop mysql8啟動 MySQL 容器:
docker start mysql8重啟 MySQL 容器:
docker restart mysql8查看容器日志:
docker logs mysql8