- 查看需要安裝的鏡像版本
dockerHub官網(wǎng)地址:https://hub-stage.docker.com/
1.搜索mysql
2.點擊標(biāo)簽
3.點擊Tags,查看想要的版本
- 在安裝好docker的linux中執(zhí)行命令
拉取mysql最新版本
docker pull mysql
拉取mysql指定版本
docker pull mysql:5.7
拉取結(jié)束后,查看本地是否存在
docker images
運行mysql
docker run -d -p 3306:3306 --name mysql -v /mysqldata/mysql/log:/var/log/mysql -v /mysqldata/mysql/data:/var/lib/mysql -v /mysqldata/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=root mysql:5.7
- 上述命令的含義:
docker run : 在docker中啟動一個容器實例
-d : 該容器在后臺運行
-p 3306:3306 : 容器與主機(jī)映射端口為,3306(主機(jī)端口,即外部連接mysql使用的端口號):3306(容器端口號)
--name mysql : 容器運行后的名稱
-v /mysqldata/mysql/log:/var/log/mysql : 將容器/var/log/mysql目錄下的數(shù)據(jù),備份到主機(jī)的/mysqldata/mysql/log目錄下
-v /mysqldata/mysql/data:/var/lib/mysql : 將容器/var/lib/mysql目錄下的數(shù)據(jù),備份到主機(jī)的 /mysqldata/mysql/data目錄下
-v /mysqldata/mysql/conf:/etc/mysql : 將容器/etc/mysql目錄下的數(shù)據(jù),備份到主機(jī)的/mysqldata/mysql/conf目錄下
-e MYSQL_ROOT_PASSWORD=root : 設(shè)置當(dāng)前mysql實例的密碼為root
mysql:5.7 : 需要運行的容器名稱以及版本號
通過此處-v命令備份后,就算當(dāng)前mysql容器實例被刪除,那么再次重啟mysql容器后,數(shù)據(jù)將會自動從主機(jī)加載到容器中
切換到上述命令配置的主機(jī)/mysqldata/mysql/conf目錄下
cd /mysqldata/mysql/conf
創(chuàng)建my.cof文件
touch my.cof
使用vim命令對my.cnf文件添加如下內(nèi)容,在docker中安裝的mysql默認(rèn)字符集是latinl,需要改成utf8
[client]
default_character_set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8
按esc,輸入:wq!,保存退出
過程如下:
重啟mysql容器實例,讓剛才的配置文件生效
docker restart mysql
查看是否啟動成功
docker ps
自此安裝結(jié)束
使用navicat連接mysql
連接成功,新建數(shù)據(jù)庫,表
- 補充
如果需要實現(xiàn)在運行容器實例時就執(zhí)行SQL腳本
,可以在上述命令的基礎(chǔ)上添加如下內(nèi)容:
1.創(chuàng)建如下目錄
mkdir /mysqldata/mysql/init
2.在目錄/mysqldata/mysql/init
下創(chuàng)建名為init.sql
的初始文件,該文件存放數(shù)據(jù)庫需要初始化的內(nèi)容
init.sql
-- 創(chuàng)建一個user用戶,密碼為123456
CREATE USER 'user'@'%' IDENTIFIED BY '123456';
-- 給user用戶賦予數(shù)據(jù)庫的所有權(quán)限
GRANT ALL PRIVILEGES ON *.* TO 'user'@'%';
-- 刷新用戶
flush privileges;
-- 創(chuàng)建數(shù)據(jù)庫
create database test;
-- 建表
create table `userinfo` (
`uid` int(11) NOT NULL AUTO_INCREMENT COMMENT 'uid',
`userid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用戶id',
`nickname` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '昵稱',
`usign` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`uimg` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'userdefaultimg.jpg' COMMENT '用戶頭像',
PRIMARY KEY (`uid`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
-- 插入數(shù)據(jù)
INSERT INTO `userinfo` VALUES (1, '1571476959767947441', '小A', '無冥冥之志者,無昭昭之明;無惛惛之事者,無赫赫之功。', '/pic/xa.jpg');
INSERT INTO `userinfo` VALUES (2, '1571476959767947449', '小B', '與我捻熄燈,同我書半生。問我粥可溫,同我立黃昏。', '/pic/xb.jpg');
INSERT INTO `userinfo` VALUES (3, '1571476959767947427', '小C', '人生得意須盡歡,莫使金樽空對月。天生我材必有用,千金散盡還復(fù)來。', '/pic/xc.jpeg');
INSERT INTO `userinfo` VALUES (4, '1575254996716916627', '小D', '心之所向,素履以往,生如逆旅,一葦以航。', '/pic/xd.jpeg');
3.編寫啟動命令
在原有命令的基礎(chǔ)上新建如下內(nèi)容:
-v /mysqldata/mysql/init:/docker-entrypoint-initdb.d/
完整命令:文章來源:http://www.zghlxwxcb.cn/news/detail-699652.html
docker run -d -p 3306:3306 --name mysql -v /mysqldata/mysql/log:/var/log/mysql -v /mysqldata/mysql/data:/var/lib/mysql -v /mysqldata/mysql/conf:/etc/mysql -v /mysqldata/mysql/init:/docker-entrypoint-initdb.d/ -e MYSQL_ROOT_PASSWORD=root mysql:5.7
釋意:
docker中mysql可以在啟動時在/docker-entrypoint-initdb.d/目錄運行初始化的sql文件,此處通過volume映射到主機(jī)的目錄/mysqldata/mysql/init下,運行init.sql文件,達(dá)到初始化效果文章來源地址http://www.zghlxwxcb.cn/news/detail-699652.html
到了這里,關(guān)于Docker環(huán)境安裝MySql詳細(xì)步驟的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!