在Docker中安装MySQL

Docker安装Mysql

1、启动Docker

复制代码
  • 1
  • 2
  • 3
  • 4
启动:sudo systemctl start docker
sudo service docker start
停止:systemctl stop docker
重启:systemctl restart docker

2、查询mysql

复制代码
  • 1
docker search mysql

3、安装mysql
默认拉取最新版本mysql

复制代码
  • 1
docker pull mysql

拉取指定版本mysql_xxx,例如:

复制代码
  • 1
sudo docker pull mysql:5.7

4、查看镜像

复制代码
  • 1
docker images

5、本地创建挂载目录-v
二、Docker启动\使用Mysql
1、启动mysql容器(创建镜像实例)
指定版本

复制代码
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
sudo docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7

最新版本

复制代码
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:latest

docker run -p 3306:3306 --name mysql -v $PWD/conf/my.cnf:/etc/mysql/my.cnf -v $PWD/logs:/logs -v $PWD/data:/mysql_data -e MYSQL_ROOT_PASSWORD=123456 -d mysql

3.命令含义:容器=完整Linux

复制代码
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
docker run:在docker中启动一个容器实例
-d:该容器在后台运行
-p 3306:3306:容器与主机映射端口为,主机3306,容器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:需要运行的容器名称以及版本号

2、在var/lib/docker/containers/下查看容器

复制代码
  • 1
cd /var/lib/docker/containers/

3、查看mysql进程获取name——mysql名称

复制代码
  • 1
docker ps -a

4、进入mysql容器—并登陆mysql

复制代码
  • 1
格式:docker exec -it mysql名称 bash

进入mysql容器操作台命令:

复制代码
  • 1
docker exec -it mysql bash

登录mysql命令:

复制代码
  • 1
mysql -u root -p

输入密码:

5、开启远程访问权限
命令:

复制代码
  • 1
use mysql;

命令:

复制代码
  • 1
select host,user from user;

命令:

复制代码
  • 1
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

命令:

复制代码
  • 1
flush privileges;

把root用户的密码改成 mysql_native_password 模式,即可远程连接
创建一个账号-admin,用来进行远程访问;
CREATE USER 'admin'@'%' IDENTIFIED BY '123456';
赋予所有权限给之前创建的账号:admin
GRANT ALL ON . TO 'admin'@'%';
确认使用密码{123456}登录此账号{admin}
密码尽量复杂,安全性更高。
ALTER USER 'admin'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
刷新权限
FLUSH PRIVILEGES;

6、查看docker日志
命令:docker logs -f --tail 10 a4dac74d48f7

7、常用命令

复制代码
  • 1
  • 2
查看进程
命令:docker ps -a
复制代码
  • 1
  • 2
关闭docker中mysql容器
命令:docker stop mysqlserver

8、重启docker中mysql重启

复制代码
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
重启docker
命令:systemctl restart docker
关闭docker
命令:systemctl stop docker
自动重启容器
sudo docker update mysql --restart=always

9、移除原来的container ID(就是长长的那串数字)

复制代码
  • 1
docker rm container ID

三、Mysql设置

复制代码
  • 1
  • 2
  • 3
  • 4
**1、进入容器:**
命令: docker exec -it mysql bash
命令:mysql -u root -p

2、定位容器位置

复制代码
  • 1
  • 2
命令:whereis mysql
显示:mysql: /usr/bin/mysql /usr/lib/mysql /etc/mysql /usr/share/mysql

3、退出容器:

复制代码
  • 1
exit

4、找到配置文件夹:一级一级的进入

复制代码
  • 1
  • 2
  • 3
命令:cd /mydata/
命令:cd mysql/
命令:cd conf/

5、创建配置文件:cnf

复制代码
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
命令:vi my. cnf
命令:i
粘贴内容:
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect=' SET collation_connection = utf8_unicode_ci '
init_connect=' SET NAMES utf8 '
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
按键:ESC
命令::wq

6、重启容器

复制代码
  • 1
  • 2
命令:docker restart mysql
命令:docker exec -it mysql /bin/bash

7、进入文件夹

复制代码
  • 1
  • 2
  • 3
目录:cd /etc/mysql/
展示:ls
查看文件:cat my. cnf

本文作者:苏筱筱

本文链接:https://www.cnblogs.com/hei-xiu/p/17953819

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   苏筱筱  阅读(57)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.
评论
收藏
关注
推荐
深色
回顶
展开