使用docker安装mysql

1:通过docker下载指定版本的mysql
   命令:
        sudo docker pull mysql:5.7
2: 查看下载的镜像
   命令:
       sudo docker images
3: 使用root用户创建实例并启动mysql
    命令:    
        docker run -p 3306:3306 --privileged=true --name mysql \
        -v /mydata/mysql/log:/var/log/mysql \
        -v /mydata/mysql/data:/var/lib/mysql \
       -v /mydata/mysql/conf:/etc/mysql/conf.d \
        -e MYSQL_ROOT_PASSWORD=root \
        -d mysql:5.7
    参数说明:
        -p 3306:3306 表示将容器(创建的mysql容器)的3306端口映射到主机(centos7)的3306端口
        -v /mydata/mysql/conf:/etc/mysql 将配置文件夹挂载到主机(前一个是宿主机目录,后一个是镜像容器目录)
        -v /mydata/mysql/log:/var/log/mysql 将日志文件夹挂载到主机(前一个是宿主机目录,后一个是镜像容器目录)
        -v /mydata/mysql/data:/var/lib/mysql 将配置文件夹挂载到主机(前一个是宿主机目录,后一个是镜像容器目录)
        -e MYSQL_ROOT_PASSWORD=root 初始化root用户的密码
        --name mysql 为容器指定名称为mysql
        -d mysql:5.7 后台运行名称为mysql,版本为5.7的镜像
        
        注意:
            上面-v挂载的文件夹内容,镜像容器都会同步到centos7对应的挂载目录/mydata/mysql/下,可以到centos7环境中查看,
            修改centos7环境中对应目录下的配置文件,mysql对应的挂载目录文件也会变化

4:查看正在运行的镜像容器
   命令:
        docker ps
        
5: 使用客户端去链接一下
     信息:
        ip地址(centos7容器配置的ip地址): 192.168.56.10
        端口号:3306
        用户名密码: root/root
6: 我们启动的mysql是一个完整的运行环境,可以把它看成一个完整的linux,如下我们可以进入到mysql内部
    1):进入mysql内部的命令(下面表示进入到容器的/bin/bash目录下)
        docker exec -it 容器ID /bin/bash
    2):进入后可以使用linux命令操作,
        例如:
            查看目录结构:ls /    
            查看mysql的安装目录:whereis mysql    
           
7:修改mysql的字符编码
    1):进入我们centos7的挂载目录(需要新建my.cnf)
        cd /mydata/mysql/conf
        vi my.cnf
    2):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 utf8'
        character-set-server=utf8
        collation-server=utf8_unicode_ci
        skip-character-set-client-handshake
8:重启mysql
    docker restart mysql(创建的容器名称)

9:最后进入到mysql容器中,查看对应的挂载目录/etc/mysql中是否有my.cnf文件
   docker exec -it mysql /bin/bash
   cd /etc/mysql
   ls

10:设置容器开机自动启动
    命令:
        sudo docker update 容器名称 --restart=always
    sudo docker update mysql --restart=always

11、如果mysql连接不上有可能是宿主机路由的问题

我们路由没开的话就会导致宿主机于容器实例网络隔绝,所以是要打开的

1)查看路由是否打开

        sysctl net.ipv4.ip_forward #返回值为1代表路由已开启,为0就是未开启

2)开启路由

echo “net.ipv4.ip_forward = 1” >>/etc/sysctl.conf #将命令写入到/etc/sysctl.conf文件中
sysctl -p #加载内核
sysctl net.ipv4.ip_forward #再次查看路由是否开启
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值