您好,登錄后才能下訂單哦!
這篇文章主要介紹“MYSQL大小寫不敏感導致用戶登錄異常問題怎么解決”,在日常操作中,相信很多人在MYSQL大小寫不敏感導致用戶登錄異常問題怎么解決問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”MYSQL大小寫不敏感導致用戶登錄異常問題怎么解決”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
問題:
注冊用戶system全部小寫,但是系統登錄時,使用SYSTEM登陸成功。
原因:
MySQL在查詢字符串時是大小寫不敏感的,在編繹MySQL時一般以ISO-8859字符集作為默認的字符集,這個字符集對大小寫不敏感,因此在比較過程中大小寫轉換造成了這種現象。
解決:
對于相關字段加上"binary"屬性,使之作為二進制比較,例如將"name char(10)"改成"name char(10) binary"。
之前安裝MySQL時大小寫是敏感的,結果公司RDS上的生產庫中配置是不敏感的,導致不同步,需要把開發數據庫也修改為大小寫不敏感,經過網上搜索,需要修改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服務: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 注釋掉以后,可以正常啟動了。
猜測:莫非系統已有數據庫,所以不支持修改這個大小寫敏感的配置嗎?
1.Mysql8.0開啟忽略表大小寫,無法啟動,解決方案
mysql8.0默認是區分大小寫。因此如果要設置忽略大小寫,需要在安裝完成之后,初始化數據庫的時候進行設置。
/usr/sbin/mysqld --initialize --user=mysql --lower-case-table-names=1
2.初始化完成之后在啟動數據庫。否則的話就會是無效的。
3.如果要是已經啟動了數據庫,在配置文件中再去修改,就會造成數據庫無法啟動的情況。
如果出現這個情況,首先需要刪除掉
/var/lib/mysql
文件夾下面的所有的文件。
再去修改配置文件my.cnf
添加lower_case_table_names=1
在啟動mysql。
這樣可以完美解決
到此,關于“MYSQL大小寫不敏感導致用戶登錄異常問題怎么解決”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。