JOOMLA中文安装时 数据库发生错误解块办法

解法:

如果您符合下列條件就會在安裝Joomla的時候卡在install2.php並出現下列錯誤:#1071 - Specified key was too long; max key length is 1000 bytes

  • 新安裝Joomla, Mambo無論任何版本任何語系,包括目前站上的1.0.7中文版
  • 使用MySQL4.1以上,預計安裝Joomla的資料庫預設字元集是utf8

解法: - 打開installation/sql/[欲安裝的語系]/joomla.sql。 - 尋找下面這行 UNIQUE KEY `section_value_value_aro` (`section_value`,`value`) - 在這兩行前面加#號把它們無效掉: UNIQUE KEY `section_value_value_aro` (`section_value`,`value`), UNIQUE KEY `#__gacl_section_value_value_aro` (`section_value`,`value`), - 在這個指令的下面(也就是# Table structure for table `#__core_acl_aro_groups`的上面新增下面四行: ALTER TABLE `#__core_acl_aro` CHANGE `section_value` `section_value` VARCHAR( 240 ) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL default '0'; ALTER TABLE `#__core_acl_aro` CHANGE `value` `value` VARCHAR( 240 ) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL default ''; ALTER TABLE `#__core_acl_aro` ADD UNIQUE `section_value_value_aro` ( `section_value` , `value` ); ALTER TABLE `#__core_acl_aro` ADD UNIQUE `#__gacl_section_value_value_aro` (`section_value`,`value`); - 存檔。然後打開includes/database.php。 - 找這行//@mysql_query("SET NAMES 'utf8'", $this->_resource); - 在它下面增加兩行: @mysql_query("SET NAMES 'utf8'", $this->_resource); @mysql_query("SET CHARACTER SET UTF8", $this->_resource); - 結束。記得日後升級如果有蓋到includes/database.php要做同樣的事情。 原因 1. 用utf8資料庫在建立資料表的時候會遇到MySQL Bug #4541。此解法讓Joomla安裝程式把那兩個欄位改回latin1在加它要的Unique Key。 2. MySQL4.1之後開始關心php程式送進去的資料是什麼編碼,所以我們要在database.php裡面傳個指令告訴它。 警告 1.網路上其他解法說建個latin1的資料庫給Joomla使用就好了,還是可以順利使用中文。沒錯,但是資料實際上在資料庫裡面是亂碼(用phpMyAdmin進去看就知道),您會無法備份您的網站。將錯就錯,請勿使用本解法裡面的改法改資料庫與database.php,網站會爆炸。 2. 記得日後升級如果有蓋到includes/database.php要做同樣的事情。 其他已知問題 mysqli沒有辦法SET NAMES `utf8`,請勿使用database.mysqli.php就算您用MySQL5。還有php的mysql連線預設編碼一定是latin1,要改掉這個一定要重新編譯libmysql。 其他中的其他 外國人是二等公民啊。WordPress、Tavi、Joomla通通都有同樣的問題;另外上面這個解法花了我4小時才試出來。 如果您覺得以上解法有用,請回個文讓大家容易找到這篇文章,謝謝^^。

或者直接在joomla.sql 里面吧utf8改成GBK即可

原文地址:https://www.cnblogs.com/billhuang/p/3531248.html