gpt4 book ai didi

php - MySQL lower_case_table_names 导致 PHP 连接错误

转载 作者:行者123 更新时间:2023-11-29 12:04:09 24 4
gpt4 key购买 nike

在 MySQL 中,lower_case_table_names 全局变量决定表名写入磁盘时是否保留字母大小写,以及表名匹配是否区分大小写。根据the docs :

If you are using InnoDB or MySQL Cluster (NDB) tables, you should set this variable to 1 on all platforms to force names to be converted to lowercase.

我的网站运行在 Apache 2.4 上,带有 MySQL 5.6.23 和 PHP 5.5.25。我的大部分表都是 MyISAM,但我想将它们转换为 InnoDB。根据上面的指令,我尝试在MySQL的配置文件中设置lower_case_table_names=1。但是,重新启动服务器后,我无法再使用 mysqli 扩展从 PHP 代码连接到数据库。代码 $this->mysqli = new\mysqli($host,$user,$pwd,$db_name,$port); 返回 mysqli->connect_error = "Access returned for user '用户名'@'localhost'(使用密码:YES)”。我确信登录凭据是好的,原因如下:

  • 在 PHP 环境之外,我可以使用以下命令连接到数据库使用远程工具 (SQLyog) 获得相同的凭据。
  • 如果我从配置文件中删除 lower_case_table_names=1 行并重新启动服务器,一切恢复正常。

在 MySQL 服务器启动过程中 -- 当 lower_case_table_names=1 时 -- 错误日志显示 3 个警告:

  • [警告] 具有隐式 DEFAULT 值的 TIMESTAMP 已被弃用。请
    使用 --explicit_defaults_for_timestamp 服务器选项(请参阅
    文档以获取更多详细信息)。
  • [警告]“db”条目“%_ldap_ou=地址簿 cpldap@localhost”有
    混合大小写的数据库已被迫小写,因为
    lower_case_table_names 已设置。将无法删除此内容
    使用 REVOKE 授予权限。
  • [警告]“db”条目“logaholicdb_host logaholic@localhost”有
    混合大小写的数据库已被迫小写,因为
    lower_case_table_names 已设置。将无法删除此内容
    使用 REVOKE 授予权限。

这两个配置下还记录了几个[Note]条目。删除 lower_case_table_names=1 行后,仅出现第一个警告。被拒绝访问的用户对相关数据库具有以下权限(SHOW GRANTS FOR 'username'@'localhost'; 的结果)

  • GRANT USAGE ON . TO 'username'@'localhost' IDENTIFIED BY PASSWORD '*6DF294D9BAA539074CFC4DD08E77909FE53CFCE1'
  • GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON my_db.* TO 'username'@'localhost'

为什么连接失败以及如何修复它?

最佳答案

第 1 步:首先通过 mysqldump 命令备份数据库(所有故事)。

第 2 步:现在将您的配置设置更改为小写。

第三步:现在重新启动mysql服务。

第四步:现在恢复备份。

默认情况下,所有表名称都以小写形式写入磁盘,甚至您可以通过小写/大写/驼峰形式调用它们,但实际上它们将以小写形式存储在服务器上。

关于php - MySQL lower_case_table_names 导致 PHP 连接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31846823/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com