A-TAK.COM

WordPressで記事更新時に「データベース内の投稿を更新できませんでした」エラーが出る

※Amazonのアソシエイトとして、A-TAK.COMは適格販売により収入を得ています
※本サイトではその他アフィリエイトも利用しております。

シェア

久々にブログの記事を見直しかけていたら、このエラーが出て更新出来ない。なぜ!?

データベースの文字コードが更新出来ていない

どこかのバージョンで文字コードが utf8mb3 から utf8mb4 に変わったようなのですが、どうもうまく更新が出来ないケースがあるようです。こうなっていると顔文字が文章に入っているとこのエラーが出てしまうようです。

手動で更新します。

まずは wp-config.php から確認。

define( 'DB_CHARSET', 'utf8mb4' );

ここは問題なくmb4になっていました。

次にテーブル。テーブルはテーブルのデフォルトと各カラムの2カ所に文字コードの指定があります。

mysqlコマンドでDBに接続して更新する。

ALTER TABLE `wp_commentmeta` DEFAULT CHARACTER SET utf8mb4;
ALTER TABLE `wp_comments` DEFAULT CHARACTER SET utf8mb4;
ALTER TABLE `wp_links` DEFAULT CHARACTER SET utf8mb4;
ALTER TABLE `wp_postmeta` DEFAULT CHARACTER SET utf8mb4;
ALTER TABLE `wp_posts` DEFAULT CHARACTER SET utf8mb4;
ALTER TABLE `wp_termmeta` DEFAULT CHARACTER SET utf8mb4;
ALTER TABLE `wp_terms` DEFAULT CHARACTER SET utf8mb4;
ALTER TABLE `wp_term_relationships` DEFAULT CHARACTER SET utf8mb4;
ALTER TABLE `wp_term_taxonomy` DEFAULT CHARACTER SET utf8mb4;
ALTER TABLE `wp_usermeta` DEFAULT CHARACTER SET utf8mb4;
ALTER TABLE `wp_users` DEFAULT CHARACTER SET utf8mb4;
ALTER TABLE `wp_options` DEFAULT CHARACTER SET utf8mb4;

alter table `wp_commentmeta` convert to character set utf8mb4;
alter table `wp_comments` convert to character set utf8mb4;
alter table `wp_links` convert to character set utf8mb4;
alter table `wp_postmeta` convert to character set utf8mb4;
alter table `wp_posts` convert to character set utf8mb4;
alter table `wp_termmeta` convert to character set utf8mb4;
alter table `wp_terms` convert to character set utf8mb4;
alter table `wp_term_relationships` convert to character set utf8mb4;
alter table `wp_term_taxonomy` convert to character set utf8mb4;
alter table `wp_usermeta` convert to character set utf8mb4;
alter table `wp_users` convert to character set utf8mb4;
alter table `wp_options` convert to character set utf8mb4;

これで更新完了。確認。

show create table `wp_commentmeta`;
show create table `wp_comments`;
show create table `wp_links`;
show create table `wp_postmeta`;
show create table `wp_posts`;
show create table `wp_termmeta`;
show create table `wp_terms`;
show create table `wp_term_relationships`;
show create table `wp_term_taxonomy`;
show create table `wp_usermeta`;
show create table `wp_users`;
show create table `wp_options`;

utf8mb3 の記載がなければOK

| c25b05_wp_options | CREATE TABLE `c25b05_wp_options` (
  `option_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `option_name` varchar(191) DEFAULT NULL,
  `option_value` longtext NOT NULL,
  `autoload` varchar(20) NOT NULL DEFAULT 'yes',
  PRIMARY KEY (`option_id`),
  UNIQUE KEY `option_name` (`option_name`),
  KEY `autoload` (`autoload`)
) ENGINE=MyISAM AUTO_INCREMENT=6254729 DEFAULT CHARSET=utf8mb4 |

シェア

投稿日

カテゴリー:

投稿者:

カテゴリ一覧