您没有 SUPER 权限,并且在迁移 mysql 中的例程时启用了二进制日志记录

Jaq*_*arh 2 php mysql laravel docker docker-compose

我正在尝试将Bagisto添加到 CNAME 上的应用程序堆栈中shop,因此我添加了一个新的 SQL 数据库来在 Docker-Compose 中托管它。

当我docker exec -it -u root my_php_container bash运行时,php artisan migrate当它尝试创建例程时我会得到这个。

SQLSTATE[HY000]:一般错误:1419 您没有 SUPER 权限并且启用了二进制日志记录(您可能希望使用不太安全的 log_bin_trust_functio n_creators 变量)

我的 docker-compose 容器如下所示:

mysql:
  image: 'mysql:latest'
  restart: 'unless-stopped'
  expose:
  - '3306'
  environment:
  - 'MYSQL_DATABASE=${MYSQL_DATABASE}'
  - 'MYSQL_ROOT_PASSWORD=${MYSQL_PASSWORD}'
  - 'MYSQL_USER=${MYSQL_USER}'
  - 'MYSQL_PASSWORD=${MYSQL_PASSWORD}'
  volumes:
  - 'laravel-db:/var/lib/mysql/'
  networks:
  - 'laravel'
Run Code Online (Sandbox Code Playgroud)

查看了 SO ,但找不到与此相关的mysql docker 映像的环境。我尝试添加一个刚刚运行导出的入口点,log_bin_trust_function_creators=1但这没有用。任何帮助表示赞赏。

我运行的是 Ubuntu 20.04

小智 9

SET GLOBAL log_bin_trust_function_creators = 1;在运行docker exec -it -u root my_php_container bash或之前执行此操作php artisan migrate

为此,您必须以 mysql 用户身份登录,并在 mysql 终端中执行SET GLOBAL log_bin_trust_function_creators = 1;.

  • 我必须`docker exec -it -u root mysql bash`然后运行`mysql -u root -p table_name`并以root身份登录,然后执行`SET GLOBAL log_bin_trust_function_creators = 1;`谢谢! (3认同)