0

TYPO3はインストール後にそれ自身のテーブルにデータを挿入することに失敗しますが、それについて文句を言いません。例えば、インストールツールによる管理者ユーザーの作成はで終了しますUser created!が、be_usersテーブルは空のままです。

サーバーは以下を使用しています:

  • Debian 6.0.6
  • TYPO3 6.0.2
  • PHPバージョン5.3.19-1〜dotdeb.0
  • mysql Ver 14.14 Distrib 5.5.28

編集:私がこれまでに試したこと:

1.MySQLWorkbenchでの挿入と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.動作を実験し、にcommit2行追加しました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;');

3.strictを削除しましたsql_mode

4.非常によく似たサーバーへの別のTypo3インストールが成功しました。

さらに提案はありますか?

4

3 に答える 3

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シェルに貼り付けてみてください。他の問題と同様に、同じサーバー、データベースなどを使用していることを確認してください。

出口は、他のコードが作成直後に新しいユーザーを削除しないように注意します。

于 2013-02-25T09:54:18.363 に答える
1

commit取引をしていますか?

于 2013-02-23T13:01:46.977 に答える
1

MySQLのデフォルトエンジンはInnoDBです。Typo3テーブルのエンジンをMyISAMに変更すると、問題が修正されます。

ALTER TABLE be_users ENGINE = MyISAM;
...
于 2013-03-04T11:55:23.780 に答える