0


Docker下安装mysql超详细步骤

  • 查看需要安装的镜像版本 dockerHub官网地址
  1. 搜索mysql在这里插入图片描述 2.点击标签在这里插入图片描述 3.点击Tags,查看想要的版本号在这里插入图片描述
  • 在安装好docker的linux中执行命令 拉取mysql最新版本
docker pull mysql 

拉取mysql指定版本

docker pull mysql:5.7

拉取结束后,查看本地是否存在

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

:容器与主机映射端口为, 3306(主机端口,即外部连接mysql使用的端口号): 3306(容器端口)

--name mysql

:容器运行后的名称

-v /mysqldata/mysql/log:/var/log/mysql

:将容器/var/log/mysql目录下的数据,备份到主机的 /mysqldata/mysql/log目录下

-v /mysqldata/mysql/data:/var/lib/mysql

:将容器/var/lib/mysql目录下的数据,备份到主机的 /mysqldata/mysql/data目录下

 -v /mysqldata/mysql/conf:/etc/mysql

:将容器/etc/mysql目录下的数据,备份到主机的 mysqldata/mysql/conf目录下

-e MYSQL_ROOT_PASSWORD=root

:设置当前mysql实例的密码为root

mysql:5.7

:需要运行的容器名称以及版本号

通过此处-v 命令备份后,就算当前mysql容器实例被删除,那么再次重启mysql容器后,数据将会自动重主机加载到容器当中

切换到上述命令配置的主机

/mysqldata/mysql/conf

目录下

cd /mysqldata/mysql/conf

创建

my.cnf

文件

touch my.cnf

使用

vim

命令对

my.cnf

文件添加如下内容,在docker中安装的mysql默认字符集是

latin1

,需要改成

utf8
[client]default_character_set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8

按esc,输入

:wq!

,保存退出

过程如下:
在这里插入图片描述
重启mysql容器实例,让刚才的配置文件生效

docker restart  mysql

查看是否启动成功

dockerps

在这里插入代码片
自此安装结束

使用

navicat

连接

mysql

在这里插入图片描述
连接成功,新建数据库,表
在这里插入图片描述

  • 补充 如果需要实现在运行容器实例时就执行SQL脚本,可以在上速命令的基础之上添加如下内容:

1.创建如下目录

mkdir /mysqldata/mysql/init

2.在目录

/mysqldata/mysql/init

下创建名为

init.sql

的初始文件,该文件存放数据库需要初始化的内容

init.sql
##创建一个user用户,密码为123456
CREATE USER'user'@'%' IDENTIFIED BY '123456';##给user用户赋予数据库的所有权限
GRANT ALL PRIVILEGES ON *.* TO 'user'@'%';##刷新用户
flush privileges;##创建数据库
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 '/pic/userdefaultimg.jpg' COMMENT '用户头像',
  PRIMARY KEY (`uid`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT =5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;##插入数据

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', '人生得意须尽欢,莫使金樽空对月。天生我材必有用,千金散尽还复来。', '/pic/xc.jpeg');
INSERT INTO `userinfo` VALUES (4, '1575254996716916627', '小D', '心之所向,素履以往,生如逆旅,一苇以航。', '/pic/xd.jpeg');

3.编写启动命令
在原有命令的基础上新增如下内容:

-v /mysqldata/mysql/init:/docker-entrypoint-initdb.d/

完整命令:

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映射到主机的目录

/mysqldata/mysql/init

下,运行

init.sql

文件,达到初始化效果

标签: mysql docker 容器

本文转载自: https://blog.csdn.net/qq_46122292/article/details/125001047
版权归原作者 亿只王菜菜 所有, 如有侵权,请联系我们删除。

“Docker下安装mysql超详细步骤”的评论:

还没有评论