Laravel mysql迁移错误

新手上路,请多包涵

我最近格式化了我的 mac book pro,从 github 克隆了 proyect 并安装了我需要的东西,比如 MySql 和 Sequel Pro 我试图迁移数据库信息,但我得到这个错误:

    Illuminate\Database\QueryException  : SQLSTATE[42000]: Syntax error or access violation: 1231 Variable 'sql_mode' can't be set to the value of 'NO_AUTO_CREATE_USER' (SQL: select * from information_schema.tables where table_schema = fisica and table_name = migrations)

  Exception trace:

  1   PDOException::("SQLSTATE[42000]: Syntax error or access violation: 1231 Variable 'sql_mode' can't be set to the value of 'NO_AUTO_CREATE_USER'")

版本:

MySQL 8.0.11

拉维尔 5.6.12

PHP 7.1.14(客户端)

 DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=fisica
DB_USERNAME=xxx
DB_PASSWORD=xxx

我从 Sequel PRO GUI 创建了数据库

原文由 Julian Mendez 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 454
2 个回答

几天前我终于找到了解决方案,我记得这篇文章。在 mysql 标签中的 config/database.php 文件中,应添加 sql 模式以跳过此错误。 https://dev.mysql.com/doc/refman/8.0/en/sql-mode.html#sql-mode-full

我的 MySQL 数组最终是这样的:

     'mysql' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'forge'),
        'username' => env('DB_USERNAME', 'forge'),
        'password' => env('DB_PASSWORD', ''),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'strict' => true,
        'engine' => null,
        'modes'  => [
            'ONLY_FULL_GROUP_BY',
            'STRICT_TRANS_TABLES',
            'NO_ZERO_IN_DATE',
            'NO_ZERO_DATE',
            'ERROR_FOR_DIVISION_BY_ZERO',
            'NO_ENGINE_SUBSTITUTION',
        ],
    ],

原文由 Julian Mendez 发布,翻译遵循 CC BY-SA 4.0 许可协议

在文件中:

配置/数据库.php

 'mysql' =[
    ...
    'strict' => false
]

同时禁用 sql_mode

通过 SQL:

 SET GLOBAL sql_mode = 'NO_ENGINE_SUBSTITUTION';

通过 my.cnf 内部标题 [mysqld]

 sql_mode=NO_ENGINE_SUBSTITUTION

测试更改:

 SHOW VARIABLES LIKE 'sql_mode';

原文由 Efrén 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏