docker 搭建 mysql

zcx發表於2019-10-17

搭建 mysql

說明:

  • 搭建步驟:只需順序執行操作 1~3,其他操作用於再次啟動時的命令

1.拉取映象

docker pull mysql

2.檢視映象

docker images

3.新建容器
若映象不是最新版本,那麼需要在命令裡指定版本號 (如 mysql:5.7.25 )

run --name=krystal_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456  -d mysql:5.7.25

說明:

  • --name= 後面是指定的容器名
  • -p 代表埠對映,格式為 宿主機對映埠:容器執行埠
  • -e 代表新增環境變數
  • MYSQL_ROOT_PASSWORD 是 root 使用者的登陸密碼
  • mysql:5.7.25 是下載的映象 + 版本 (若不指定版本,該命令會重新下載 mysql 最新的映象)

4.檢視當前啟動狀態的容器

docker ps 

5.檢視所有容器 (包含未啟動的)

docker ps -a

6.啟動非啟動狀態的容器
此步驟用於再次啟動容器

docker start ID

說明: ID 是容器 ID(docker ps -a 查詢結果)

進入 mysql,進行資料庫操作

1.進入容器,進入與 shell 互動頁面
以下有兩種方式

#最簡單的進入方式
docker exec -it <contrainerId>  bash
#這種方式下,資料庫才可輸入和展示中文資料
docker exec -it <contrainerId> env LANG=C.UTF-8 /bin/bash

2.登陸 mysql

mysql -u root -p


遇到的問題:有一個報錯 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwor:yes)原因:密碼不正確

3.建立資料庫

#建立資料庫
create database database_name;
#切換到剛新建的資料庫
use database_name;
#檢視該資料庫下的表
show tables;

4.建立表結構
例子:一個年級的學生名單如下,請用 sql 語句建立如下表。

#加上後邊的(character set utf8),才可以插入中文資料
create table TB_Student( id int primary key auto_increment , class char(20), name char(20)) character set utf8;

5.修改表結構

#修改表欄位型別(原有列class,修改型別為varchar(50))
alter table TB_Student modify class varchar(50);
#為表增加欄位(seq是表的新增列)
alter table TB_Student add seq int;

6.表中插入資料

#插入多條資料
insert into TB_Student values(3,"一班","Angelia"),(4,"一班","Bill");
#插入新紀錄,可以不插入id(因為建立表的時候這個欄位設定的自增)
insert into TB_Student(class,name) values("二班","Colin");

相關文章