mysql中修改字符集時可能會遇到的問題以及解決方法。
1. 問題描述
mysql中,有時候我們需要修改字符集,但是可能會遇到字符集修改失敗的問題。比如,執行如下命令
ameb4b4icode_ci;
但是可能會出現如下錯誤
gaxgth is 767 bytes
2. 原因分析
mysql5noDBb4字符集下,一個字符多占用4個字節,所以在建立索引的時候,一個鍵的長度只能是191個字符,而不是之前的255個字符。
如果你的表中定義了一個超過191個字符的鍵,那么就會出現上述錯誤。
3. 解決方法
解決這個問題的方法有兩種
方法一在表的定義中使用短一些的鍵
可以通過縮短鍵的長度來解決這個問題。比如,將鍵的長度從255個字符縮短到191個字符。
nodb_large_prefix參數的值
nodbnodb_large_prefix參數默認是關閉的,開啟后可以支持更長的鍵。
nodb_large_prefix參數的值
nodb_large_prefix=ON;
nodbysql服務才能生效。
mysqlnoDBnodbnodbysql服務才能生效。