在 Alpine 下的虚拟机上安装 Mysql

Installing Mysql on a VM under Alpine

我正在尝试在 Alpine 上安装和使用 mysql。我正在使用 Docker 在 Alpine 下生成虚拟机。 我的 Docker 文件非常简单 :

FROM alpine:3.11.3

CMD sh

一旦我 运行 创建了图像(使用 docker build // docker 运行 image_id),我安装 Mysql :

apk add --update --upgrade mysql mysql-client

然后,我安装数据库:

mysql_install_db

问题是,一旦我完成了该操作并尝试“mysql”,机器 returns 这个 :

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/run/mysqld/mysqld.sock' (2)

当我尝试执行“mysqld -u root”时,它return让我遇到了这个问题:

2020-08-26 10:07:55 0 [ERROR] Could not open mysql.plugin table. Some plugins may be not loaded
2020-08-26 10:07:55 0 [ERROR] Can't open and lock privilege tables: Table 'mysql.servers' doesn't exist
2020-08-26 10:07:55 0 [ERROR] Can't start server : Bind on unix socket: No such file or directory
2020-08-26 10:07:55 0 [ERROR] Do you already have another mysqld server running on socket: /run/mysqld/mysqld.sock ?
2020-08-26 10:07:55 0 [ERROR] Aborting

我了解到文件mysqld.sock服务于服务端与客户端讨论。我试图创建目录 mysqld,然后创建文件 mysqld.sock,但它不起作用。它 return 给我同样的错误,但具有不同的 return 值。

(ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/run/mysqld/mysqld.sock' (111)

至少,我不想在 Dockerhub 上使用 mysql 的现有图像。

有没有人知道缺少哪一步才能让它发挥作用?

对不起,如果我写得不对,我的母语不是英语。

我能够使用这些命令在 alpine 容器上成功安装并启动 mysql:

$ docker run -it --rm alpine:latest

/ # apk add mysql mysql-client
/ # mkdir /run/mysqld
/ # mysql_install_db
/ # mysqld -u root --data=./data &> /dev/null &

测试连接:

/ # mysql -e "SELECT VERSION();"
+----------------+
| VERSION()      |
+----------------+
| 10.6.4-MariaDB |
+----------------+