在我的服务器上植入我的网站,我有这个错误:
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
但问题没有消失。
任何的想法?
要修复列大小问题,您必须更改数据库配置。确保编辑现有设置或未设置时添加;
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
中找到学说设置,并将其更改为以下内容;
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
完成!一切都应该正常工作!
你可以在这里阅读这个问题;