Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Docker容器中运行MySQL_Mysql_Ubuntu_Docker - Fatal编程技术网

在Docker容器中运行MySQL

在Docker容器中运行MySQL,mysql,ubuntu,docker,Mysql,Ubuntu,Docker,因此,我的最终目标是运行一个MySQL Docker容器(比如公共注册表中的tutum/MySQL),然后将一个Gitlab Docker容器(比如sameersbn/Gitlab)链接到它,其中两个容器都使用持久存储 然而,我被困在MySQL部分。每次我尝试运行一个预先制作好的MySQL Docker容器(MySQL、tutum/MySQL和sameersbn/MySQL),如下所述,我都会得到下面的输出 步骤 这只是获取以下错误消息的一种方法 docker.io pull tutum/mys

因此,我的最终目标是运行一个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“/run.sh”(根据tutum/mysql dockerfile)
  • 此时,“等待MySQL服务启动确认”消息不断重复
  • 此时,如果我取消“/run.sh”命令并自己启动MySQL,我会收到下面的错误消息
  • 输出:

    root@1bbeb34f3491:/#mysqld

    140730 4:49:04[警告]不推荐使用唯一选项前缀key\u buffer而不是key\u buffer\u size,并将在将来的版本中删除。请改用全名

    140730 4:49:04[警告]不推荐使用唯一选项前缀myisam recover而不是myisam recover选项,并将在将来的版本中删除。请改用全名

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

    mysqld:表“mysql.plugin”不存在

    140730 4:49:04[错误]无法打开mysql.plugin表。请运行mysql\u升级来创建它

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

    140730 4:49:04 InnoDB:互斥锁和rw_锁使用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:支持的最高文件格式是Barracuda

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

    140730 4:49:05 InnoDB:5.5.37启动;日志序列号1595675

    140730 4:49:05[注意]服务器主机名(绑定地址):“0.0.0.0”;港口:3306

    140730 4:49:05[注]-“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[错误]套接字:/var/run/mysqld/mysqld.sock上是否已运行另一个mysqld服务器

    140730 4:49:05[错误]正在中止

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

    解决错误

    • “请运行mysql\u upgrade来创建它”=>运行mysql\u upgrade命令,该命令输出
    root@1bbeb34f3491:/#mysql#U升级

    正在将“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客户端,并尝试连接到mysql\u PORT\u 3306\u TCP\u ADDR中ip地址上的mysql容器,但这也不起作用

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

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

    我不太确定该在这个解释中加入什么,因为这个问题在我看来很奇怪。如果我遗漏了什么,请询问,我会为您添加

    谢谢, JamesStewy

    这对我很有用:
    
    docker run-d-p3306:3306-e MYSQL\u PASS=“mypass”tutuum/MYSQL
    


    不需要运行bash的脚本,也不需要任何聪明的东西。

    我认为这个问题可能更适合确定:。想知道:你的主机是什么?您使用的是本地实际机器还是一些云VP?如果你说你使用docker 0.9.1,你应该试试最近的一款(我猜大概是1.1.1),来仔细检查这与bug无关。这是一台直接安装了Ubuntu 14.04的物理本地机器。昨天我意识到我的Docker版本落后了很多,但由于某些原因,apt get上的Docker包的版本只有0.9.1。所以我按照这些说明()进行操作,现在运行的是1.1.2。不幸的是,这并没有改变任何事情。@JamesStewy,你能想出这个吗?我也面临同样的问题。