在Docker容器中运行MySQL

 曹衡斌_307 发布于 2022-12-31 11:19

因此,我的最终目标是运行一个MySQL Docker容器(例如,公共注册表中的tutum / mysql),然后将一个Gitlab Docker容器(例如sameersbn / gitlab)链接到该容器,这两个容器都使用持久性存储。

但是,我坚持使用MySQL。每次我尝试运行如下所示的预制MySQL Docker容器(mysql,tutum / mysql和sameersbn / mysql)时,都会得到以下输出。

脚步

这只是获取以下错误消息的一种方法。

    docker.io pull tutum / mysql:最新

    docker.io运行-it tutum / mysql bash

    附加到新容器后,运行“ /run.sh”(根据tutum / mysql dockerfile)

    此时,“等待确认MySQL服务启动”消息不断重复。

    在这一点上,如果我取消“ /run.sh”命令并自己启动MySQL,则会收到以下错误消息。

输出:

root @ 1bbeb34f3491:/#mysqld

140730 4:49:04 [警告]不建议使用唯一的选项前缀key_buffer而不是key_buffer_size,并且在以后的版本中将删除它。请改用全名。

140730 4:49:04 [警告]不建议使用唯一的选项前缀myisam-recover代替myisam-recover-options,并将在以后的版本中将其删除。请改用全名。

140730 4:49:04 [注意]插件“ FEDERATED”已禁用。

mysqld:表'mysql.plugin'不存在

140730 4:49:04 [ERROR]无法打开mysql.plugin表。请运行mysql_upgrade创建它。

140730 4:49:04 InnoDB:InnoDB内存堆已禁用

140730 4:49:04 InnoDB:互斥体和rw_locks使用GCC原子内置函数

140730 4:49:04 InnoDB:压缩表使用zlib 1.2.8

140730 4:49:04 InnoDB:使用Linux本机AIO

140730 4:49:04 InnoDB:正在初始化缓冲池,大小= 128.0M

140730 4:49:04 InnoDB:缓冲池的完成初始化

140730 4:49:04 InnoDB:支持的最高文件格式是梭子鱼。

140730 4:49:04 InnoDB:等待后台线程启动

140730 4:49:05 InnoDB:5.5.37开始; 日志序列号1595675

140730 4:49:05 [Note]服务器主机名(绑定地址):'0.0.0.0'; 端口:3306

140730 4:49:05 [Note]-'0.0.0.0'解析为'0.0.0.0';

140730 4:49:05 [注]在IP:'0.0.0.0'上创建的服务器套接字。

140730 4:49:05 [错误]无法启动服务器:在Unix套接字上绑定:权限被拒绝

140730 4:49:05 [错误]您是否已经在套接字上运行另一个mysqld服务器:/var/run/mysqld/mysqld.sock?

140730 4:49:05 [ERROR]中止

140730 4:49:05 InnoDB:正在启动关机... 140730 4:49:06 InnoDB:已完成关机; 日志序列号1595675 140730 4:49:06 [注意] mysqld:关闭完成

解决错误

“请运行mysql_upgrade创建它” =>运行mysql_upgrade命令,输出

root @ 1bbeb34f3491:/#mysql_upgrade

寻找“ mysql”为:mysql

寻找“ mysqlcheck”为:mysqlcheck

严重错误:升级失败

“您是否已经在套接字上运行了另一个mysqld服务器” =>否。运行服务mysql stop不会执行任何操作,而运行ps不会显示mysqld。运行ls -a / var / run / mysqld /表示套接字文件不存在。

无论我尝试使用哪种MySQL容器,最终当我启动MySQL时,都会出现相同的错误消息。这几乎肯定意味着我的设置存在问题,这使我感到困惑,因为我认为没有暴露端口或持久性存储的Docker容器会与安装Docker的系统隔离吗?

我还尝试过运行带有-d标志的MySQL容器,然后运行链接到它的新的ubuntu 14.04容器(docker.io run -it --link mysql:mysql ubuntu:14.04 bash)。在Ubuntu容器上,我通过apt-get安装了mysql-client,并尝试在MYSQL_PORT_3306_TCP_ADDR的IP地址上连接到MySQL容器,但这也不起作用。

同样,问题可能是我不了解Docker的工作方式。如果是这种情况,有人可以创建一组步骤来使用Docker索引上的一个MySQL容器,然后将一个容器链接到可以连接的容器。这也将有助于查看我的Docker安装是否存在问题(或其他导致此问题的未知问题)。

我的主机系统正在运行Ubuntu 14.04,而Docker是通过apt-get安装的,版本是0.9.1。

我不太确定要在解释中加上什么,因为这个问题对我来说似乎很奇怪。如果有什么我想念的,请询问,我会为您添加。

谢谢,JamesStewy

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有