1. ホーム
  2. mysql

[解決済み] #1273 - 不明な照合順序:'utf8mb4_unicode_ci' cPanel

2022-04-24 10:05:38

質問

ローカルマシンにWordPressのデータベースがあり、cPanelでホストされているphpMyAdminに転送したいのですが、どうすればよいですか?しかし、データベースを環境にインポートしようとすると、このエラーが出続けています。

#1273 - Unknown collation: 'utf8mb4_unicode_ci' 

ググってみたけど、解決策はこれしかない。 phpmysql error - #1273 - #1273 - Unknown collation: 'utf8mb4_general_ci'. というのは、今までのようにあまり役に立ちません。Cookieをクリアしてみましたが、まだうまくいきません。助けてください。

解決するには?

私たちのサーバーはすべて古いバージョンのMySQLを使用しているため、同じ問題が発生しました。これは、PHPスクリプトを実行することで解決できます。このコードをファイルに保存し、データベース名、ユーザー名、パスワードを入力して実行すると、照合順序が次のように変更されます。 utf8mb4/utf8mb4_unicode_ci から utf8/utf8_general_ci

<!DOCTYPE html>
<html>
<head>
  <title>DB-Convert</title>
  <style>
    body { font-family:"Courier New", Courier, monospace; }
  </style>
</head>
<body>

<h1>Convert your Database to utf8_general_ci!</h1>

<form action="db-convert.php" method="post">
  dbname: <input type="text" name="dbname"><br>
  dbuser: <input type="text" name="dbuser"><br>
  dbpass: <input type="text" name="dbpassword"><br>
  <input type="submit">
</form>

</body>
</html>
<?php
if ($_POST) {
  $dbname = $_POST['dbname'];
  $dbuser = $_POST['dbuser'];
  $dbpassword = $_POST['dbpassword'];

  $con = mysql_connect('localhost',$dbuser,$dbpassword);
  if(!$con) { echo "Cannot connect to the database ";die();}
  mysql_select_db($dbname);
  $result=mysql_query('show tables');
  while($tables = mysql_fetch_array($result)) {
          foreach ($tables as $key => $value) {
           mysql_query("ALTER TABLE $value CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci");
     }}
  echo "<script>alert('The collation of your database has been successfully changed!');</script>";
}

?>