mysql - 如何使用 GitHub Actions 连接到 MySQL 数据库?

在我的 GitHub Action 中,我使用的是 Linux 运行器(Ubuntu 18.04 和 20.04),并且我想使用 MySQL 数据库。因此,为了进行设置,我运行了一个脚本,例如

sudo apt update
sudo apt install mysql-server

sudo mysql < someInstructions.txt

但是,当我在 GitHub Actions 上运行此脚本时,我收到以下错误:

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

所以我认为 MySQL 服务器在安装后没有运行(我已验证)。这很奇怪,因为 Ubuntu 软件包的文档明确指出服务器应该在成功安装后运行。

无论如何,然后我使用 sudo systemctl start mysql.service 启动 MySQL 服务器,但现在我收到此错误

'Access denied for user 'root'@'localhost' (using password: NO)'

这真的让我感到困惑,因为 sudo mysql 应该以 root 身份连接到数据库。我验证这适用于常规 Ubuntu 安装。

有谁知道我如何连接到 GitHub Actions 上的 MySQL 数据库?

回答1

混淆的根源在于,当使用 GitHub Actions (或更具体地说:GitHub 托管的运行器之一)时,您会得到一个已安装 MySQL 的 Linux 映像。因此,当执行 sudo apt install mysql-server 时,不会触发实际安装。

因此,安装后通常发生的默认设置也不适用,因为它永远不会执行。相反,GitHub 已经预先配置了 MySQL 服务器,以便用户 root 具有明确的密码设置(这就是为什么普通的 sudo mysql 不起作用的原因)。用户 root 的默认密码是 root

另请注意,默认情况下 MySQL 服务器已禁用,因此您必须先启动它(如问题中所述)。启动并运行后,您可以使用连接到它

sudo mysql --user=root --password=root

参考:

相似文章

最新文章