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



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

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

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

我的docker组合容器如下所示:

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'

我查看了SO,但找不到与此相关的mysql docker映像的env。我尝试添加一个Entrypoint,它刚刚为log_bin_trust_function_creators=1运行了一个导出,但没有成功。感谢您的帮助。

我正在运行Ubuntu 20.04

在运行docker exec -it -u root my_php_container bashphp artisan migrate之前执行此SET GLOBAL log_bin_trust_function_creators = 1;

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

最新更新