MYSQL大小寫不敏感導(dǎo)致用戶登錄異常問題
MYSQL大小寫不敏感導(dǎo)致用戶登錄異常
問題:
注冊用戶system全部小寫,但是系統(tǒng)登錄時,使用SYSTEM登陸成功。
原因:
MySQL在查詢字符串時是大小寫不敏感的,在編繹MySQL時一般以ISO-8859字符集作為默認(rèn)的字符集,這個字符集對大小寫不敏感,因此在比較過程中大小寫轉(zhuǎn)換造成了這種現(xiàn)象。
解決:
對于相關(guān)字段加上"binary"屬性,使之作為二進(jìn)制比較,例如將"name char(10)"改成"name char(10) binary"。
MYSQLV8.0設(shè)置大小寫不敏感后不能正常啟動
之前安裝MySQL時大小寫是敏感的,結(jié)果公司RDS上的生產(chǎn)庫中配置是不敏感的,導(dǎo)致不同步,需要把開發(fā)數(shù)據(jù)庫也修改為大小寫不敏感,經(jīng)過網(wǎng)上搜索,需要修改my.cnf配置文件。
第一步:查找my.cnf文件位置
1、使用 find / -name "my.cnf"
/etc/my.cnf
找到my.cnf 文件位于 /etc 目錄下。
2、vi /etc/my.cnf
尾部增加配置
lower_case_table_names=1
ESC wq 退出并保存。
3、重啟MySQL
- 停掉MySQL服務(wù):service mysqld stop
- 啟動MySQL服務(wù):service mysqld start
結(jié)果卻出錯了,顯示:
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 注釋掉以后,可以正常啟動了。
猜測:莫非系統(tǒng)已有數(shù)據(jù)庫,所以不支持修改這個大小寫敏感的配置嗎?
網(wǎng)友的解決辦法
1.Mysql8.0開啟忽略表大小寫,無法啟動,解決方案
mysql8.0默認(rèn)是區(qū)分大小寫。因此如果要設(shè)置忽略大小寫,需要在安裝完成之后,初始化數(shù)據(jù)庫的時候進(jìn)行設(shè)置。
/usr/sbin/mysqld --initialize --user=mysql --lower-case-table-names=1
2.初始化完成之后在啟動數(shù)據(jù)庫。否則的話就會是無效的。
3.如果要是已經(jīng)啟動了數(shù)據(jù)庫,在配置文件中再去修改,就會造成數(shù)據(jù)庫無法啟動的情況。
如果出現(xiàn)這個情況,首先需要刪除掉
/var/lib/mysql
- 文件夾下面的所有的文件。
- 再去修改配置文件my.cnf
- 添加lower_case_table_names=1
- 在啟動mysql。
這樣可以完美解決
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Navicat連接MySQL時出現(xiàn)的連接失敗問題及解決
這篇文章主要介紹了Navicat連接MySQL時出現(xiàn)的連接失敗問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05MYSQL時區(qū)導(dǎo)致時間差了14或13小時的解決方法
本文主要介紹了MYSQL時區(qū)導(dǎo)致時間差了14或13小時的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01mysql ndb集群備份數(shù)據(jù)庫和還原數(shù)據(jù)庫的方法
中午剛剛弄明白了MYSQL集群的備份與恢復(fù)。寫下來,以后就不用為這個問題浪費時間了2011-12-12