代码之家  ›  专栏  ›  技术社区  ›  Jaquarh

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

  •  0
  • Jaquarh  · 技术社区  · 3 年前

    我想补充一点 Bagisto 到我在CNAME上的应用程序堆栈 shop 所以我在Docker Compose中添加了一个新的SQL数据库。

    当我 docker exec -it -u root my_php_container bash 然后跑 php artisan migrate 当它试图创建一个例程时,我得到了这个结果。

    SQLSTATE[HY000]:一般错误:1419您没有超级权限,并且启用了二进制日志记录(您 可以 想使用不太安全的log\u bin\u trust\u函数吗 n_创建者变量)

    我的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'
    

    took a look on SO 但找不到该项目的环境 mysql docker image 关于这件事。我试图添加一个入口点,该入口点刚刚为 log_bin_trust_function_creators=1 但这并不奏效。感谢您的帮助。

    我正在运行Ubuntu20.04

    0 回复  |  直到 3 年前
        1
  •  2
  •   Vishnu    3 年前

    做这个 SET GLOBAL log_bin_trust_function_creators = 1; 在运行 docker exec -it -u root my_php_container bash php artisan migrate .

    为此,您必须以mysql用户身份登录,并在mysql终端中执行 设置全局日志\u bin\u trust\u function\u creators=1; .