Wai*_*igi 163 mysql wordpress phpmyadmin cpanel
我在本地计算机上有一个wordpress数据库,我想将其转移到Cpanel上的托管phpMyAdmin.但是,当我尝试将数据库导入环境时,我不断收到此错误
#1273 - Unknown collation: 'utf8mb4_unicode_ci'
Run Code Online (Sandbox Code Playgroud)
我试图谷歌周围和我能找到的唯一解决方案是这一个phpmysql错误 - #1273 - #1273 - 未知的整理:'utf8mb4_general_ci'现在已经没有多少帮助了.我已经尝试清除cookie但它仍然无法正常工作.请帮忙!
Evs*_*ter 228
1)单击数据库的"导出"选项卡
2)单击"自定义"单选按钮
3)转到标题为"特定于格式的选项"的部分,并更改"数据库系统或较旧的MySQL服务器的下拉列表以最大化输出兼容性:"从NONE到MYSQL40.
4)滚动到底部,然后单击"开始".
我不确定这样做是否会导致任何数据丢失,但是在我尝试过的一次中我没有注意到任何数据丢失.在上述论坛中回复的任何人都没有.
编辑8/12/16 - 我相信以这种方式导出数据库会导致我丢失保存在Black Studio TinyMCE Visual Editor小部件中的数据,尽管我没有运行多个测试来确认.
Ran*_*ais 137
最好的办法是导出数据库.sql
,在Notepad ++上打开它,然后转到"搜索和替换".然后你把"utf8mb4"放在搜索上,"utf8"放在替换上.它会将utf8mb4_unicode_ci替换 为utf8_unicode_ci.现在转到PhpMyAdmin(目标)并将DB排序设置为utf8_unicode_ci
(Operations> Collation).
小智 103
我遇到了同样的问题,因为我们所有的服务器都运行旧版本的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>";
}
?>
Run Code Online (Sandbox Code Playgroud)
hal*_*ar8 39
我在linux中使用它:
sed -i 's/utf8mb4/utf8/g' your_file.sql
sed -i 's/utf8_unicode_ci/utf8_general_ci/g' your_file.sql
sed -i 's/utf8_unicode_520_ci/utf8_general_ci/g' your_file.sql
Run Code Online (Sandbox Code Playgroud)
然后恢复your_file.sql
mysql -uyourdbuser -pyourdbpasswd yourdb < your_file.sql
Run Code Online (Sandbox Code Playgroud)
Mar*_*son 28
出于安全原因,Wordpress 4.2引入了对"utf8mb4"字符编码的支持,但只有MySQL 5.5.3及更高版本支持它.安装程序(和更新程序)处理此问题的方式是它检查您的MySQL版本,并且只有在支持的情况下,您的数据库才会升级到utfmb4 .
这在理论上听起来很棒,但问题(正如您所发现的)是将数据库从支持utf8mb4的MySQL服务器迁移到不支持utf8mb4的MySQL服务器.虽然反过来应该工作,但它基本上是单向操作.
正如Evster所指出的,您可能会成功使用PHPMYAdmin的"导出"功能.使用" 导出方法:自定义 "和" 数据库系统或较旧的MySQL服务器以最大化输出兼容性: "下拉列表选择" MYSQL 40 ".
对于使用mysqldump的命令行导出.看看旗帜:
$ mysqldump --compatible=mysql4
Run Code Online (Sandbox Code Playgroud)
注意:如果数据库中有任何4字节字符,它们将被破坏.
最后,对于使用流行的WP Migrate DB PRO插件的任何人来说,这个Wordpress.org线程中的用户报告说迁移总是被正确处理但我无法找到任何正式的.
WP Migrate DB插件将数据库从一个排序规则转换为另一个排序规则,当它在5.5.3之前或之后的主机之间移动4.2个站点时
目前,似乎没有办法退出数据库更新.因此,如果您正在使用工作流将服务器或本地主机(使用MySQL> 5.5.3)迁移到使用较旧MySQL版本的工作流,那么您可能会运气不好.
She*_*man 26
在我的情况下,事实证明我的
新服务器正在运行MySQL 5.5
,
旧服务器正在运行MySQL 5.6
.
因此,在尝试导入.sql
从旧服务器导出的文件时出现此错误.
MySQL 5.5不支持utf8mb4_unicode_520_ci
,但
MySQL 5.6 支持.
更新到MySQL 5.6
新服务器解决了整理错误!
如果你想保留MySQL 5.5,你可以:
- 复制你导出的.sql
文件
- 替换utf8mb4unicode520_ci
和utf8mb4_unicode_520_ci
...的实例utf8mb4_unicode_ci
- 导入你更新的.sql
文件.
Isk*_*k1n 15
wp-config.php中有一行:
define('DB_CHARSET', 'utf8mb4');
Run Code Online (Sandbox Code Playgroud)
如果您按照Markouver/Evster的说明进行操作,请不要忘记将生产服务器上的此行更改为
define('DB_CHARSET', 'utf8');
Run Code Online (Sandbox Code Playgroud)
为了修复损坏的4字节字符
小智 10
经过长时间的研究,我找到了上述解决方案:
首先将wp-config.php> Database DB_CHARSET默认更改为"utf8"
单击数据库的"导出"选项卡
单击"自定义"单选按钮
转到标题为"特定于格式的选项"的部分,并更改"数据库系统或较旧的MySQL服务器的下拉列表以最大化输出兼容性:"从NONE到MYSQL40.
滚动到底部,然后单击go
然后你就开始了.
好像您的主机没有提供能够使用utf8mb4排序规则运行表的MySQL版本.
WordPress表更改为utf8mb4版本4.2(2015年4月23日发布)以支持Emojis,但您需要MySQL 5.5.3才能使用它.5.5.3.从2010年3月开始,通常应广泛使用.Cna你检查你的托管服务商是否提供该版本?
如果没有,并且无法升级,您可能需要注意另一个主机运行最新的WordPress版本(出于安全原因,您应该始终这样做).
归档时间: |
|
查看次数: |
344933 次 |
最近记录: |