Symfony 3.4.6 - 10.1.37-MariaDB-0 + deb9u1 - 索引列大小太大

问题描述 投票:1回答:1

在我的服务器上植入我的网站,我有这个错误:

ERROR 1709 (HY000) at line 278: Index column size too large. The maximum column size is 767 bytes.

服务器类型:

nginx的/ 1.11.10

数据库客户端版本:libmysql - mysqlnd 5.0.12-dev - 20150407 - $ Id:38fea24f2847fa7519001be390c98ae0acafe387 $

PHP扩展:mysqliDocumentation curlDocumentation mbstring文档

PHP版本:7.1.14

数据库:

服务器:通过UNIX套接字的Localhost

服务器类型:MariaDB

服务器连接:未使用SSL文档

服务器版本:10.1.37-MariaDB-0 + deb9u1 - Debian 9.6

协议版本:10

在我的config.yml(从这个文件https://symfony.com/doc/3.4/reference/configuration/doctrine.html)把server_version作为10.1.37-mariadb但问题没有消失。

任何的想法?

mariadb symfony-3.4 php-7.1
1个回答
1
投票

要修复列大小问题,您必须更改数据库配置。确保编辑现有设置或未设置时添加;

character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
innodb-file-format=Barracuda
innodb-file-per-table=ON
innodb-large-prefix=1

当然,您还需要重新启动数据库实例才能完成配置。在应用更改并重新启动之前备份数据库总是明智的,以防出现问题。

最后,您必须在config/packages/doctrine.yamlapp/config/config.yml中找到学说设置,并将其更改为以下内容;

doctrine:
    dbal:
        # configure these for your database server
        driver: 'pdo_mysql'
        server_version: 'mariadb-10.1.37'
        charset: utf8mb4
        default_table_options:
            charset: utf8mb4
            collate: utf8mb4_unicode_ci
            row_format: DYNAMIC

完成这些更改后,清除symfony缓存并重新创建数据库;

console doctrine:database:drop
console cache:clear
console doctrine:database:create

完成!一切都应该正常工作!

你可以在这里阅读这个问题;

© www.soinside.com 2019 - 2024. All rights reserved.