MariaDB 10.3设置lower_case_table_names = 1不区分大小写不生效

博主在将数据库升级至MariaDB10.3后遭遇大量表因大小写问题无法识别。通过修改/etc/my.cnf.d/server.cnf文件中的lower_case_table_names参数尝试解决,但设置未生效。最终在/etc/my.cnf中加入配置并重启数据库成功。表名大小写敏感度取决于lower_case_table_names参数设置,需重新建表并确保备份。

昨天数据库升级到MariaDB 10.3,结果大量的表因为表面大小写的出现table '*****' doesn't exist.

通过查阅,修改配置/etc/my.cnf.d/server.cnf

[mysqld] 下加入 lower_case_table_names=1,结果通过 service mysql restart 重启多次,设置都不生效.

新建前请备份数据库!

新建前请备份数据库!

新建前请备份数据库!

最后尝试新建了/etc/my.cnf,在里面加入配置,重启后竟然成功了.没有了解到具体怎么回事.如果有大佬看到希望解释下

设置成功后,表名大写的表在每次打开库的时候都会一闪而过,然后不见了.

看到解释说的是:
lower_case_table_names: 此参数不可以动态修改,必须重启数据库
lower_case_table_names = 1 表名存储在磁盘是小写的,但是比较的时候是不区分大小写
lower_case_table_names=0 表名存储为给定的大小和比较是区分大小写的
lower_case_table_names=2, 表名存储为给定的大小写但是比较的时候是小写

然后,所以需要重新建表.....千万要备份~~

### MARIADB_MYSQL_LOCALHOST_USER环境变量的作用与意义 MARIADB_MYSQL_LOCALHOST_USER 是一个常见的环境变量,通常用于配置 MariaDBMySQL 数据库服务在本地主机上的用户权限管理。具体来说,该环境变量的主要作用是定义一个默认的用户名称,当数据库服务启动时,会自动为 localhost 的连接分配此用户身份[^1]。 #### 环境变量的功能 - **简化用户配置**:通过设置 MARIADB_MYSQL_LOCALHOST_USER,管理员可以避免在每次启动服务或执行脚本时手动指定用户名。 - **增强安全性**:如果此环境变量被正确配置,可以减少使用 root 用户进行本地连接的风险,从而提升系统的安全性[^3]。 - **自动化集成**:在容器化环境中(如 Docker),此变量常用于自动创建或映射特定用户到数据库实例中,以便快速部署和初始化数据库。 #### 示例代码 以下是一个简单的示例,展示如何在 MariaDB 中利用此环境变量来创建用户并赋予权限: ```sql -- 创建一个新用户并授予其对特定数据库的权限 CREATE USER 'localuser'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON db_example.* TO 'localuser'@'localhost'; ``` 上述代码片段展示了如何为 localhost 创建一个名为 `localuser` 的用户,并赋予其对数据库 `db_example` 的所有权限[^4]。 #### 注意事项 - 如果未正确设置 MARIADB_MYSQL_LOCALHOST_USER,可能会导致连接失败或权限足的问题。例如,出现类似 `Access denied for user 'root'@'localhost'` 的错误信息[^3]。 - 在生产环境中,建议避免使用默认用户或过于简单的密码组合,以防止潜在的安全隐患。 ### 总结 MARIADB_MYSQL_LOCALHOST_USER 环境变量的核心意义在于优化本地用户的管理流程,同时提高数据库服务的安全性和易用性。通过合理配置此变量,可以显著简化开发和运维工作中的用户授权操作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值