要允许远程主机访问在 Docker 中运行的 MySQL 服务器,您需要执行以下步骤:

  1. 进入 MySQL 容器:

    docker exec -it mysql-container-name bash

    mysql-container-name 替换为您 MySQL 容器的名称或容器的ID。

  2. 连接到 MySQL 服务器:

    mysql -u root -p

    您将需要输入 MySQL root 用户的密码。

  3. 使用以下 SQL 命令为 root 用户允许远程访问:

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION;

    请将 'your_password' 替换为您希望设置的 root 用户的密码。这将授予 root 用户从任何主机('%')连接到 MySQL 服务器的权限。这是出于安全考虑,通常不建议开放给所有主机。在生产环境中,应该只允许特定的 IP 地址或主机名访问。

  4. 刷新权限:

    FLUSH PRIVILEGES;
  5. 退出 MySQL:

    exit
  6. 退出容器:

    exit

现在,MySQL 服务器应该允许远程主机使用 root 用户连接。确保在生产环境中谨慎设置远程访问权限,以最大程度地提高安全性。此外,如果您运行的是 Docker Compose,可以考虑在 docker-compose.yml 文件中为 MySQL 服务设置环境变量以进行更详细的配置。