MySQL如何实现镜像,如果可以的话

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL如何实现镜像,如果可以的话相关的知识,希望对你有一定的参考价值。

    1 用主从模式 看文档,这个最简单,但是同步的话非常麻烦。
    2 用专门的集群软件 mysql网站上有介绍,但是只支持linux
    mysql> show master status;
    +-------------+----------+--------------+------------------+
    | File        | Position | Binlog_do_db | Binlog_ignore_db |
    +-------------+----------+--------------+------------------+
    | bin_log.003 | 73       | book,xtdb    |                  |
    +-------------+----------+--------------+------------------+

    mysql> show slave status;
    +---------------+-------------+-------------+---------------+-------------+-----+---------------+-----------------+---------------------+------------+------------+--------------+
    | Master_Host   | Master_User | Master_Port | Connect_retry | Log_File    | Pos | Slave_Running | Replicate_do_db | Replicate_ignore_db | Last_errno | Last_error | Skip_counter |
    +---------------+-------------+-------------+---------------+-------------+-----+---------------+-----------------+---------------------+------------+------------+--------------+
    | 192.168.0.101 | backup      | 3306        | 60            | bin_log.003 | 73  | Yes           | book,xtdb       |                     | 0          |            | 0            |
    +---------------+-------------+-------------+---------------+-------------+-----+---------------+-----------------+---------------------+------------+------------+--------------+


参考技术A 你好,创建镜像的代码:docker build -t 13/docker-mysql .
docker build 为创建镜像命令,名称为13/docker-mysql,’.’表示当前目录,即Dockerfile文件所在的目录

使用 mysql 的 Docker 镜像

使用 mysql 的 Docker 镜像

前言

之前搞了很多都是手工在操作系统的镜像中安装使用 mysql,作为自己折腾也就算了,作为实际使用实为不妥:Docker最重要的特性就是可扩展性,把各种程序都放在一个容器里还如何扩展(当然如果用来统一开发、测试和线上环境还是可以的)。因此再来记录一下直接使用 mysql 的官方 Docker 镜像,以免回头本末倒置,瞎折腾会了,正经的使用却不会了,虽然非常简单。

1. 下载 mysql 的 Docker 镜像

使用 docker pull mysql 命令,具体的tag名称可以去 Docker Hub 的 mysql 页面 上查询。

2. 启动命令

其实 Docker Hub 的 mysql 页面已有相关的说明了,但还应该加入端口映射:

docker run --name some-mysql -p 33060:3306 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

3. 其它思考

官方给的原来启动命令为(并没有端口的映射):

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

连接命令也有点不同:

docker run -it --network some-network --rm mysql mysql -hsome-mysql -uexample-user -p

大概是启动一个容器,然后用里面的连接程序去连接别的容器QAQ,其中 --rm 表示容器推出后自动删除,多用于测试, --network 表示可以手工设定网络。在我本地需要执行的命令为:

docker run -it --rm mysql mysql -h 172.17.0.2 -uroot -p

官方给的 mysql 是容器的名称,尝试后发现会报错:

ERROR 2005 (HY000): Unknown MySQL server host \'mysql\' (22)

尝试换成 ip 地址后可以。

参考

以上是关于MySQL如何实现镜像,如果可以的话的主要内容,如果未能解决你的问题,请参考以下文章

mysql查询Mybatis查询

如何计算mysql的IOPS

docker如何实现重新打tag并删除原tag的镜像([仓库名: tag] 可以查询到指定id的镜像,同一个id镜像能有多个[仓库名: tag])

sqllite如何实现更新

Mysql主从配置,实现读写分离

Mysql主从复制,实现数据同步