前言
上一篇文章中,我们已经在阿里云服务器中安装了docker,这篇我们将继续使用docker在云主机中安装mysql。如果你对docker中的命令不了解,那也没有关系,文中使用到的命令我都会带上一点注释信息的。
其实docker中安装mysql主要就是做两件事儿:
①获取一个mysql的镜像;
②让这个镜像在容器中运行起来;
那下面我们就用两种方式来试一下吧!
一、命令安装方式
1.获取mysql镜像
首先要使用docker中的命令搜索一下这个镜像,操作命令如下(我指定搜索了mysql 5.7):
docker search mysql:5.7
将查询到的镜像拉到本地
docker pull mysql:5.7
查看本地所有的镜像命令
docker images
2.创建文件夹
mkdir -p /home/service/mysql/data
mkdir -p /home/service/mysql/conf
3.创建配置文件
touch my.cnf -- 创建文件
vi my.cnf -- 编辑文件
-- 编辑文件 先按 'i' 输入以下 内容
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
default-time_zone = '+8:00'
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8-- 再按 Esc 输入 :wq 保存
4.在容器中运行镜像
启动容器:
docker run -p 3306:3306 --name mysql
-v /home/service/mysql/logs:/logs
-v /home/service/mysql/data:/mysql_data
-v /home/service/mysql/conf:/etc/mysql/my.cnf
-e MYSQL_ROOT_PASSWORD=123456
--restart=always
-d mysql:5.7
-docker run
docker给出的命令提示是 Run a command in a new container,字面意思,让docker把某个容器跑起来,可通过docker --help命令查询docker run 的释义
–name 容器名
Assign a name to the container 给要跑起来的容器起个名字 可通过docker run --help命令查询–name 的释义
-p 物理机映射端口:容器内部应用端口
mysql默认使用3306端口,可通过docker run --help命令查询 -p, --publish list Publish a container’s port(s) to the host
-v挂载
-e MYSQL_ROOT_PASSWORD=123456
设置mysql中Root用户的密码,-e 是设置环境变量 可通过docker run --help命令查询 -e, --env list Set environment variables
-d
运行这个容器,并且打印生成的容器ID(可以尝试不加-d,不过容器启动时打印出来的内容之多,一屏装不下)可通过docker run --help命令查询 -d, --detach Run container in background and print container ID
mysql:5.7
指定要用哪个镜像启动容器,是必须参数,不写的话命令执行不了,会提示至少写一个参数
docker ps
同docker run一样,标准Command ,可通过docker --help命令查询docker ps 的释义 ps List containers
查看当前运行起来的全部容器:
docker ps -a
二、使用Navicat连接mysql
这是我使用Navicat连接mysql5.7的报错,主要原因是:云主机没把对应的端口打开
再次连接navicatMysql
以上全部不行 需要在服务器里进入mysql做一些设置
1、进入mysql
docker exec -it mysql5.7 bash #mysql5.7 换成自己的mysql容器名称;
2、登录mysql
mysql -u root -p
3、刷新权限
CREATE USER 'admin'@'%' IDENTIFIED BY '123456';
GRANT ALL ON *.* TO 'admin'@'%';
flush privileges; -- 刷新权限