OXY NOTES

xammpのphpMyAdminで#1146エラーが出る場合の対処法

#1146 – Table ‘phpmyadmin.pma_recent’ doesn’t existが出る

xammpを1.8.2にバージョンアップしたところ、phpMyAdminでタイトルのエラーが発生
過去のバージョンだとインストールするだけで正常に稼働したんですが、何か仕様が変わったのかもしれません。

Linuxではcreate_tables.sqlで設定をしますが、それだけでは解決しなかったので手順を紹介。

1.create_tables.sqlを実行。

Linuxではコマンドで実行しますが、Windowsだと面倒なのでphpMyAdmin上で実行します。

phpMyAdminにログインして上のメニューから「インポート」を選び、「インポートするファイル:」で「C:\xampp\phpMyAdmin\examples\create_tables.sql」選び、「フォーマット」が「SQL」となっていることを確認して実行。(xamppをCドライブ直下に保存した場合)

2.設定ファイルのconfig.inc.phpを編集

C:\xampp\phpMyAdmin\config.inc.php」を開き編集します。

$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
$cfg['Servers'][$i]['relation'] = 'pma_relation';
$cfg['Servers'][$i]['table_info'] = 'pma_table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma_column_info';
$cfg['Servers'][$i]['history'] = 'pma_history';
$cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';
$cfg['Servers'][$i]['tracking'] = 'pma_tracking';
$cfg['Servers'][$i]['userconfig'] = 'pma_userconfig';
$cfg['Servers'][$i]['recent'] = 'pma_recent';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma_table_uiprefs';
$cfg['Servers'][$i]['users'] = 'pma_users';
$cfg['Servers'][$i]['usergroups'] = 'pma_usergroups';
$cfg['Servers'][$i]['navigationhiding'] = 'pma_navigationhiding';
$cfg['Servers'][$i]['savedsearches'] = 'pma_savedsearches';

となっている部分を以下のように変更。(pma_の部分をpma__とアンダーバーを2つに変更している)

$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
$cfg['Servers'][$i]['relation'] = 'pma__relation';
$cfg['Servers'][$i]['table_info'] = 'pma__table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma__column_info';
$cfg['Servers'][$i]['history'] = 'pma__history';
$cfg['Servers'][$i]['designer_coords'] = 'pma__designer_coords';
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
$cfg['Servers'][$i]['recent'] = 'pma__recent';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
$cfg['Servers'][$i]['users'] = 'pma__users';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';

終わったら、phpMyAdminをログアウトして、再度ログインしてください。
以上でエラーが表示されなくなっているはずです。


もしこれでもpma関連のエラーが出る場合はユーザーを作成して、設定ファイルでパスワードを指定してみてください。
xamppのコントロールパネルで「Shell」をクリックして起動。

mysql -u root -p ← 管理者でログイン(この例ではroot)
***** ← 管理者用のパスワードを入力
> GRANT ALL PRIVILEGES ON phpmyadmin.* TO pma@localhost IDENTIFIED BY '○○○○';
> FLUSH PRIVILEGES;
> exit

○○○○の部分はpma用のパスワードを入力。続いて「config.inc.php」の以下の部分を編集。

/* User for advanced features */
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = '○○○○';

○○○○の部分は先ほど設定したパスワード。

再度phpMyAdminにログインし直す。

以上で正常に動作するはずです。