首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在docker中为高山linux安装Mysql

在docker中为高山linux安装Mysql
EN

Stack Overflow用户
提问于 2019-06-13 20:22:52
回答 2查看 20K关注 0票数 3

我仍然有问题的mysql安装在高山码头。

我还需要openjdk:8u201-jdk-alpine3.9。

我的dockerfile:

代码语言:javascript
复制
FROM openjdk:8u201-jdk-alpine3.9
RUN apk update && \
    apk add mysql mysql-client && \
    rm -f /var/cache/apk/* && \
    addgroup mysql mysql && \
    mkdir run/mysqld && \
    touch /var/run/mysqld/mysqld.sock && \
    touch /var/run/mysqld/mysqld.pid && \
    chown -R mysql:mysql /var/run/mysqld/mysqld.sock && \
    chown -R mysql:mysql /var/run/mysqld/mysqld.pid && \
    chmod -R 644 /var/run/mysqld/mysqld.sock && \
    apk add openrc --no-cache

但是,在容器中:-没有mysql服务(只有mariadb,但这可能是高山的标准情况)-在/etc/mysql目录中没有任何my.cnf文件。

当我尝试mysql命令时,我得到了错误:

代码语言:javascript
复制
Can't connect to local MySQL server through socket '/run/mysqld/mysqld.sock' (111)

当我尝试mysql -h 127.0.0.1 -P 3306 -u root命令时,我得到了错误:

代码语言:javascript
复制
Can't connect to MySQL server on '127.0.0.1' (115)

本地主机也是如此。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-13 20:43:18

首先,为什么要在特定的镜像上安装mysql-server?我建议使用两个单独的容器-一个用于mysql数据库,另一个用于使用openjdk镜像开发的应用程序。

您可以简单地使用这个gist来创建一个设置,在这个设置中,您的https://gist.github.com/karlisabele/d0bebe3d27fc44a57d1db9a9abdff45a应用程序可以使用database (服务名称)作为mysql服务器的主机名连接到mysql数据库。

有关mysql镜像的其他配置,请参阅https://hub.docker.com/_/mysql (您应该定义MYSQL用户、密码、数据库名称等)。

更新

我更新了要点,并添加了mysql工作所需的环境变量……将qwerty值替换为您自己的值,您应该能够使用环境变量中提供的用户名和密码通过database:3306从Java应用程序访问数据库

文件末尾的卷定义告诉docker守护进程,我们希望在主机文件系统中的某个位置创建一个持久卷,并使用mysql作为别名。因此,当我们定义数据库服务卷时,我们可以简单地使用mysql:/var/lib/mysql,它实际上会在您的文件系统上挂载一个docker创建的模糊文件夹。这将允许mysql数据库在您每次启动服务时都保持持久状态(因为它将从您的主机挂载数据),并且您不必担心卷的实际位置

您可以通过运行docker volumes ls查看所有卷

票数 6
EN

Stack Overflow用户

发布于 2021-08-18 10:46:15

  1. vim /etc/my.cnf.d/mariadb-server.cnf

代码语言:javascript
复制
[mysqld]

#skip-networking

  1. 重新启动mysql容器
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56580412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档