这篇文章主要介绍“MYSQL大小写不敏感导致用户登录异常问题怎么解决”,在日常操作中,相信很多人在Mysql大小写不敏感导致用户登录异常问题怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql大小
这篇文章主要介绍“MYSQL大小写不敏感导致用户登录异常问题怎么解决”,在日常操作中,相信很多人在Mysql大小写不敏感导致用户登录异常问题怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql大小写不敏感导致用户登录异常问题怎么解决”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
问题:
注册用户system全部小写,但是系统登录时,使用SYSTEM登陆成功。
原因:
MySQL在查询字符串时是大小写不敏感的,在编绎MySQL时一般以ISO-8859字符集作为默认的字符集,这个字符集对大小写不敏感,因此在比较过程中大小写转换造成了这种现象。
解决:
对于相关字段加上"binary"属性,使之作为二进制比较,例如将"name char(10)"改成"name char(10) binary"。
之前安装MySQL时大小写是敏感的,结果公司RDS上的生产库中配置是不敏感的,导致不同步,需要把开发数据库也修改为大小写不敏感,经过网上搜索,需要修改my.cnf配置文件。
使用 find / -name "my.cnf"
/etc/my.cnf
找到my.cnf 文件位于 /etc 目录下。
vi /etc/my.cnf
尾部增加配置
lower_case_table_names=1
ESC wq 退出并保存。
重启MySQL
停掉MySQL服务:service mysqld stop
启动MySQL服务:service mysqld start
结果却出错了,显示:
Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.
找了半天也没找到错误原因,把新加的 lower_case_table_names=1 注释掉以后,可以正常启动了。
猜测:莫非系统已有数据库,所以不支持修改这个大小写敏感的配置吗?
Mysql8.0开启忽略表大小写,无法启动,解决方案
mysql8.0默认是区分大小写。因此如果要设置忽略大小写,需要在安装完成之后,初始化数据库的时候进行设置。
/usr/sbin/mysqld --initialize --user=mysql --lower-case-table-names=1
初始化完成之后在启动数据库。否则的话就会是无效的。
如果要是已经启动了数据库,在配置文件中再去修改,就会造成数据库无法启动的情况。
如果出现这个情况,首先需要删除掉
/var/lib/mysql
文件夹下面的所有的文件。
再去修改配置文件my.cnf
添加lower_case_table_names=1
在启动mysql。
这样可以完美解决
到此,关于“MYSQL大小写不敏感导致用户登录异常问题怎么解决”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!
--结束END--
本文标题: MYSQL大小写不敏感导致用户登录异常问题怎么解决
本文链接: https://www.lsjlt.com/news/357305.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
2024-05-15
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0