2013-02-21 92 views
0

TYPO3在安裝後無法在自己的表中插入數據,但不會抱怨它,例如,通過安裝工具創建的管理員用戶使用User created!, 完成,但​​3210表保持空白。TYPO3無法寫入MySQL數據庫

服務器使用:

  • 的Debian 6.0.6
  • TYPO3 6.0.2
  • PHP版本5.3.19-1〜dotdeb.0
  • 的MySQL版本14.14 DISTRIB 5.5.28

編輯:我試過到目前爲止:

1.插入MySQL Workbench和typo3數據庫用戶正在工作。資助:

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, TRIGGER ON `typo3`.* TO 'typo3_user'@'localhost'

2.我experimeneted與commit行爲,並添加了兩行到Installer.php,但沒有成功:

// added 
$autoCommitOffResult = $GLOBALS['TYPO3_DB']->sql_query('SET SESSION autocommit = 0;'); 

// the original non-working insert 
$result = $GLOBALS['TYPO3_DB']->exec_INSERTquery('be_users', $insertFields); 

// added 
$GLOBALS['TYPO3_DB']->sql_query('commit;'); 

我刪除了嚴格sql_mode

4.在非常相似的服務器上的另一個Typo3安裝成功。

還有什麼建議嗎?

+1

您能否提供與此問題相關的任何日誌文件內容? – ChristianSchaefer 2013-02-21 11:15:31

+0

@ChristianSchaefer:看起來TYPO3只記錄到數據庫,並且配置將其更改爲文件記錄也在數據庫中^^ – 2013-02-21 11:19:53

+1

TYPO3使用的MySQL用戶有什麼權限? – tmt 2013-02-21 11:40:10

回答

1

MySQL的默認引擎是InnoDB。將Typo3表的引擎更改爲MyISAM可修復此問題:

ALTER TABLE be_users ENGINE = MyISAM; 
... 
1

您是commit的交易?

+0

autocommit is .. – 2013-02-23 13:04:52

+1

關閉並執行顯式提交? – hd1 2013-02-23 13:06:37

+0

我在'Installer中添加了兩行。php',但沒有成功: '$ autoCommitOffResult = $ GLOBALS ['TYPO3_DB'] - > sql_query('SET SESSION autocommit = 0;');' '$ result = $ GLOBALS ['TYPO3_DB'] - > exec_INSERTquery('be_users',$ insertFields);' '$ GLOBALS ['TYPO3_DB'] - > sql_query('commit;');' – 2013-02-23 15:15:11

4

嘗試圍繞不起作用(前2線,低於4行)行:

$GLOBALS['TYPO3_DB']->debugOutput = true; 
$GLOBALS['TYPO3_DB']->store_lastBuiltQuery = true; 

// Now the line which should insert the BE User: 
// the original non-working insert 
$result = $GLOBALS['TYPO3_DB']->exec_INSERTquery('be_users', $insertFields); 

// Now print out the "insert_id" (uid autoincrement value) and query which has been executed: 
echo $GLOBALS['TYPO3_DB']->sql_insert_id(); 
echo "<br />\n"; 
echo $GLOBALS['TYPO3_DB']->debug_lastBuiltQuery; 
exit(); 

然後嘗試複製粘貼&此查詢到mysql外殼。與任何問題一樣,請確保使用相同的服務器,數據庫等。

退出注意,沒有其他代碼會在創建後直接刪除新用戶。

+1

當然沒有「提交」以前建議的東西。 然後告訴我結果是什麼。 – kraftb 2013-02-25 10:38:29

+0

謝謝,這聽起來很有趣。我會竭盡全力告訴你。 – 2013-02-25 11:44:54

+1

BTW:在TYPO3中通常不需要「提交」。 T3核心是在MySQL開始支持SQL「提交」功能之前開發的,我不認爲經典的T3在不久的將來會支持它。不知道NEOS。 – kraftb 2013-02-25 21:12:21