Docker安装mysql

Docker安装mysql

docker pull mysql:5.7

[root@easybuy ~]# docker pull mysql:5.7
5.7: Pulling from library/mysql

查看镜像

docker images

[root@easybuy ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
mysql        5.7       c20234f18b13   14 months ago   448MB

创建实例并且启动mysql

[root@easybuy ~]# 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


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

容器与容器之间是相互隔离的,容器内部相当于一个完整的Linux系统,这些命令就是为了让容器内部与当前服务器的端口、文件“连接上”。将容器内部的端口映射出来是为了能够通过直接访问服务器的3306端口就能访问到mysql容器内部的3306端口。文件挂载出来是为了方便我们在容器外部访问到常用的文件,不需要再进入容器内部进行访问。

-p 3306:3306 --name mysql 将容器中的3306端口映射到主机的3306端口
-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 初始化root用户的密码
-d mysql:5.7

查看是否成功

[root@easybuy ~]# docker ps
CONTAINER ID   IMAGE       COMMAND                  CREATED         STATUS         PORTS                                                  NAMES
ffd49d64e122   mysql:5.7   "docker-entrypoint.s…"   2 minutes ago   Up 2 minutes   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql

可以使用SQLyog连接mysql查看是否成功(阿里云要提前开放端口不然会连接失败)

查看服务器主机的mydata文件夹(注意,修改了其中的文件,内部容器也会发生变化)

[root@easybuy /]# ls
bin   dev  home  lib64       media  mydata  proc  run   srv  tmp  var
boot  etc  lib   lost+found  mnt    opt     root  sbin  sys  usr
[root@easybuy /]# cd mydata
[root@easybuy mydata]# ls
mysql
[root@easybuy mydata]# cd mysql/
[root@easybuy mysql]# ls
conf  data  log

修改Mysql配置

[root@easybuy mysql]# vi /mydata/mysql/conf/my.cnf

进入文件后插入

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES uft8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

保存修改之后,重启mysql容器

[root@easybuy mysql]# docker restart mysql
mysql

验证我们的修改在容器内部造成了影响

docker exec -it mysql /bin/bash 进入容器内

[root@easybuy mysql]# docker exec -it mysql /bin/bash
root@ffd49d64e122:/# cd /etc/mysql
root@ffd49d64e122:/etc/mysql# ls
my.cnf
root@ffd49d64e122:/etc/mysql# cat my.cnf 
[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES uft8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
root@ffd49d64e122:/etc/mysql# exit;
exit
[root@easybuy mysql]# 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值