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

时间:2019-03-31 07:10:35

标签: mariadb symfony-3.4 php-7.1

将我的网站植入服务器后,出现此错误:

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

服务器类型:

  

nginx / 1.11.10

     

基于datos的客户端版本:libmysql-mysqlnd 5.0.12-dev-20150407-$ Id:38fea24f2847fa7519001be390c98ae0acafe387 $

     

扩展PHP:mysqliDocumentacióncurlDocumentaciónmbstringDocumentación

     

PHP版本:7.1.14

数据库:

  

Servidor:通过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,但问题没有消失。

有什么主意吗?

1 个答案:

答案 0 :(得分:1)

要解决列大小问题,您必须更改数据库配置。 确保您编辑现有设置或将未设置的设置添加到;

from          | to           | CallConnected | WhoAnswered  | Duration
----------------------------------------------------------------------
(122) 212-3452|(700) 890-6542| 2             |(213) 344-4905| 00:03:56

当然,您还需要重新启动数据库实例以完成配置。最好先备份数据库,然后再应用更改并重新启动,以防万一出问题。

最后,您必须在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.yaml中找到该学说设置并将其更改为以下内容;

app/config/config.yml

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

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

完成!所有人现在都应该工作!

您可以在此处阅读有关该问题的信息;