広告
久々にブログの記事を見直しかけていたら、このエラーが出て更新出来ない。なぜ!?
データベースの文字コードが更新出来ていない
どこかのバージョンで文字コードが 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 |