mambo心得分享 - 真是難搞的 mysql

  • 40437
  • 0
  • SQL
  • 2011-01-13

摘要:mambo心得分享 - 真是難搞的 mysql

今天從第二次從遠端架設mambo,
之前架的時候是遇到php版本太老舊,在中文編碼上有點問題...
沒辦法,將就著用,最後還是裝起來了,只是現在在編輯內容要存檔的時候,
後面總是會出現一些多餘的亂碼...
今天想說,是一台空的機器,只有IIS是之前裝的,
php跟mysql都還沒裝,可以抓新點的版本,
應該就不會有問題了!!
沒想到還是遇到一堆問題,
這次用的是IIS 5.0 + php 4.3.11 + mysql 4.1.12a
首先是php的問題,
PHP 4.3.11 installer裝完後,
建了一個虛擬目錄放置mambo,
結果用瀏覽器開php的檔案都顯示找不到,
但是同資料夾的其他檔案都可以正常顯示,
反而是wwwroot下的php可以正常顯示...
這個問題,到現在還沒解決...
所以暫時就先放在根目錄下,不另開虛擬目錄...

再來安裝時,在mambo的安裝第一頁,版權宣告前的語系設定,出現了一堆紅字,
大致上都是修改php.ini就可以了,
頂多是在建一個session存放的資料夾,
設定完php.ini後在過宣告頁設定mysql的帳號密碼,
就卡在這個(第一)步驟,
明明帳號密碼沒問題,但就是顯示帳號密碼不正確,
後來在網路上搜尋一下,發現應該是使用mysql4.1.x以上的版本的關係,
而這好像是由於php與mysql4.1.x以上的連結有問題,
所以需要修改mysql中密碼的為舊式的編碼方式,解決語法如下(mysql):

mysql -u root-p
SET PASSWORD FOR user@localhost = OLD_PASSWORD('password');

而這步驟總算是過了,
可是.這步驟一過卻又卡在第二步驟,
錯誤訊息顯示

SQL=Specified key was too long; max key length is 1000 bytes:
- - - - - - - - - -
# Table structure for table `mos_core_acl_aro`

CREATE TABLE `mos_core_acl_aro` (
`aro_id` int(11) NOT NULL auto_increment,
`section_value` varchar(240) NOT NULL default '0',
`value` varchar(240) NOT NULL default '',
`order_value` int(11) NOT NULL default '0',
`name` varchar(255) NOT NULL default '',
`hidden` int(11) NOT NULL default '0',
PRIMARY KEY (`aro_id`),
UNIQUE KEY `section_value_value_aro` (`section_value`,`value`),
KEY `hidden_aro` (`hidden`),
KEY `mos_gacl_hidden_aro` (`hidden`)
) TYPE=MyISAM
= = = = = = = = = =

再搜尋一下,原來是因為mysql資料庫characterset的問題,
因為當初裝mysql的時候是選擇utf-8.
只要修改 installation/sql/mambo_traditional_chinese.sql
將Table structure for table `#__core_acl_aro`這段裡面將

) TYPE=MyISAM;

改成

) TYPE=MyISAM,
DEFAULT CHARACTER SET latin1;

就可以了...
不過,為了避免麻煩,也將mysql中的character set 改了,
在mysql中可以用下面的語法顯示目前的設定

mysql> SHOW VARIABLES LIKE 'character_set_%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | c:\mysql\charsets\ |
+--------------------------+----------------------------+
7 rows in set (0.00 sec)

而修改的方式如下:
SET character_set_client = latin1;
其餘依此類推,唯獨 character_set_system 無法設定...

不過,因為對mysql不是很熟,也很少用php,
所以還不是很確定到底要用怎樣的語繫在資料輸入上不會有問題也不會出現亂碼!!
等過陣子比較有心得的時候在說了!!

參考網址:
SQL Error 1071 at Step 1 of 4.5.1a install (and solution)
http://forum.mamboserver.com/showthread.php?t=24624


解決PHP存取MySQL 4.1亂碼問題
http://www.douzi.org/weblog/archives/000075.html