返回列表 发帖
查看: 1472|回复: 9

[求助] 本地DZ数据库导入 腾讯的 云数据库。回贴表

14

主题

34

回帖

60

积分

渐入佳境

贡献
0 点
金币
10 个
发表于 2024-1-2 12:33:40 | 查看全部 |阅读模式
在腾讯云开通了 云数据库。。。本机MYSQL版本5.是6.50...云上是5.7在本机用宝塔面板备份了DZ的数据库。。然后用宝塔面版导入到云里的数据库。显示导入成功。但
1、有回贴表没有导入进去。
2、原来的引擎是MyISAM倒入后都为成了InnoDB
微信图片_20240101213954.png 原数据库有POST表。


导入后。POST表没有了。
2.png

我知道答案 回答被采纳将会获得1 贡献 已有9人回答
回复

使用道具 举报

23

主题

5265

回帖

9397

积分

应用开发者

贡献
498 点
金币
1416 个
QQ
发表于 2024-1-2 12:38:22 | 查看全部
X3.4默认不支持innodb数据引擎,而云数据库一般都不支持MyISAM,所以如果要用云数据库,建议先升级到X3.5再上云
回复 1

使用道具 举报

4

主题

972

回帖

24万

积分

管理员

官方有偿服务QQ 1453650

贡献
174 点
金币
240005 个
QQ
发表于 2024-1-2 12:38:52 | 查看全部
升级X3.5,再导入,X3.4不支持InnoDB
回复

使用道具 举报

14

主题

34

回帖

60

积分

渐入佳境

贡献
0 点
金币
10 个
 楼主| 发表于 2024-1-2 12:57:25 | 查看全部
湖中沉 发表于 2024-1-2 12:38
X3.4默认不支持innodb数据引擎,而云数据库一般都不支持MyISAM,所以如果要用云数据库,建议先升级到X3.5再 ...

在云数据库里。可以后改为MyISAM。用的APP不支持3。5。暂不能升级
现在是导入后缺表。
回复

使用道具 举报

14

主题

34

回帖

60

积分

渐入佳境

贡献
0 点
金币
10 个
 楼主| 发表于 2024-1-2 12:57:35 | 查看全部
Discuz有偿服务 发表于 2024-1-2 12:38
升级X3.5,再导入,X3.4不支持InnoDB

在云数据库里。可以后改为MyISAM。用的APP不支持3。5。暂不能升级
现在是导入后缺表。
回复

使用道具 举报

23

主题

5265

回帖

9397

积分

应用开发者

贡献
498 点
金币
1416 个
QQ
发表于 2024-1-2 13:45:48 | 查看全部
cnmt 发表于 2024-1-2 12:57
在云数据库里。可以后改为MyISAM。用的APP不支持3。5。暂不能升级
现在是导入后缺表。 ...

后改的时候已经坏了,这两种引擎在数据库结构上是不一样的,不能直接变换的,有很多东西要操作的……
回复

使用道具 举报

14

主题

34

回帖

60

积分

渐入佳境

贡献
0 点
金币
10 个
 楼主| 发表于 2024-1-2 16:15:35 | 查看全部
湖中沉 发表于 2024-1-2 13:45
后改的时候已经坏了,这两种引擎在数据库结构上是不一样的,不能直接变换的,有很多东西要操作的…… ...

找到个方法。不知行不行
  1. 让 Discuz! X 3.4 支持 InnoDB: Discuz! X 3.4 InnoDB 支持需要修改三个数据表。

  2. Discuz! X 3.4 数据表使用的是 MySQL 的 MyISAM 存储引擎,只有少数几张数据表使用了 Memory 存储引擎,而现在的云数据库都开始不支持 MyISAM 存储引擎了,甚至只支持 InnoDB 一种存储引擎,比如阿里云的云数据库 RDS MySQL 版就只支持 InnoDB 这一种存储引擎,所以,默认情况下阿里云 MySQL 云数据库不能运行 Discuz! X 3.4.

  3. 如果将数据库迁移到云数据库,不支持 MyISAM 和 Memory 引擎的云数据库会自动将数据表转成 InnoDB,而无论是主动把 Discuz! X 3.4 数据表转成 InnoDB 引擎的数据表,还是被云数据库自动转成 InnoDB 引擎数据表,wuxiancheng_common_member_grouppm wuxiancheng_forum_post wuxiancheng_forum_postposition 这三个原 MyISAM 数据表会报错,错误信息是 ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key,导致后续操作这三个数据表时出现 ERROR 1146 (42S02): Table '<name>' doesn't exist 的错误,Discuz! X 3.4 访问时也会出现以下错误。
  4. Discuz! Database Error
  5. (1146) Table '<database>.forum_post' doesn't exist
  6. SELECT * FROM forum_post WHERE tid=<tid> AND position>=1 AND position<<N> ORDER BY position
  7. 其中 wuxiancheng_ 是数据表前缀,不同网站配置的前缀不同,默认的前缀为 pre_,默认前缀的情况下,这三个数据表分别是 pre_common_member_grouppm pre_forum_post pre_forum_postposition,请以实际配置为准;<name> 是数据表名,<database> 是数据库名,<tid> 是帖子编号,<N> 是一个数字,取决于相关论坛设置。

  8. 要想让 Discuz! X 3.4 支持 InnoDB,需要修改上面说到的这三个数据表。具体方法如下。



  9. 一、从支持 MyISAM 存储引擎的数据库导出 Discuz! X 3.4 数据库到一个 SQL 文件中。
  10. 二、用文本编辑软件打开 SQL 文件,搜索 common_member_grouppm,找到创建数据表的语句如下
  11. CREATE TABLE `wuxiancheng_common_member_grouppm` (
  12.   `uid` mediumint(8) unsigned NOT NULL DEFAULT '0',
  13.   `gpmid` smallint(6) unsigned NOT NULL AUTO_INCREMENT,
  14.   `status` tinyint(1) NOT NULL DEFAULT '0',
  15.   `dateline` int(10) unsigned NOT NULL DEFAULT '0',
  16.   PRIMARY KEY (`uid`,`gpmid`)
  17. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

  18. 将 PRIMARY KEY (`uid`,`gpmid`) 中的两个字段对调,也就是说将 PRIMARY KEY (`uid`,`gpmid`) 改成 PRIMARY KEY (`gpmid`, `uid`) 然后保存文件
  19. 搜索 forum_post,找到创建数据表的语句如下
  20. CREATE TABLE `wuxiancheng_forum_post` (
  21.   `pid` int(10) unsigned NOT NULL,
  22.   `fid` mediumint(8) unsigned NOT NULL DEFAULT '0',
  23.   `tid` mediumint(8) unsigned NOT NULL DEFAULT '0',
  24.   `first` tinyint(1) NOT NULL DEFAULT '0',
  25.   `author` varchar(15) NOT NULL DEFAULT '',
  26.   `authorid` mediumint(8) unsigned NOT NULL DEFAULT '0',
  27.   `subject` varchar(80) NOT NULL DEFAULT '',
  28.   `dateline` int(10) unsigned NOT NULL DEFAULT '0',
  29.   `message` mediumtext NOT NULL,
  30.   `useip` varchar(15) NOT NULL DEFAULT '',
  31.   `port` smallint(6) unsigned NOT NULL DEFAULT '0',
  32.   `invisible` tinyint(1) NOT NULL DEFAULT '0',
  33.   `anonymous` tinyint(1) NOT NULL DEFAULT '0',
  34.   `usesig` tinyint(1) NOT NULL DEFAULT '0',
  35.   `htmlon` tinyint(1) NOT NULL DEFAULT '0',
  36.   `bbcodeoff` tinyint(1) NOT NULL DEFAULT '0',
  37.   `smileyoff` tinyint(1) NOT NULL DEFAULT '0',
  38.   `parseurloff` tinyint(1) NOT NULL DEFAULT '0',
  39.   `attachment` tinyint(1) NOT NULL DEFAULT '0',
  40.   `rate` smallint(6) NOT NULL DEFAULT '0',
  41.   `ratetimes` tinyint(3) unsigned NOT NULL DEFAULT '0',
  42.   `status` int(10) NOT NULL DEFAULT '0',
  43.   `tags` varchar(255) NOT NULL DEFAULT '0',
  44.   `comment` tinyint(1) NOT NULL DEFAULT '0',
  45.   `replycredit` int(10) NOT NULL DEFAULT '0',
  46.   `position` int(8) unsigned NOT NULL AUTO_INCREMENT,
  47.   PRIMARY KEY (`tid`,`position`),
  48.   UNIQUE KEY `pid` (`pid`),
  49.   KEY `fid` (`fid`),
  50.   KEY `dateline` (`dateline`),
  51.   KEY `invisible` (`invisible`),
  52.   KEY `displayorder` (`tid`,`invisible`,`dateline`),
  53.   KEY `first` (`tid`,`first`),
  54.   KEY `authorid` (`authorid`,`invisible`)
  55. ) ENGINE=MyISAM AUTO_INCREMENT=<N> DEFAULT CHARSET=utf8;
  56. 将 PRIMARY KEY (`tid`,`position`) 中的两个字段对调,即将 PRIMARY KEY (`tid`,`position`) 改成 PRIMARY KEY (`position`, `tid`) 然后保存文件
  57. 搜索 forum_postposition,找到创建数据表的语句如下
  58. CREATE TABLE `wuxiancheng_forum_postposition` (
  59.   `tid` mediumint(8) unsigned NOT NULL,
  60.   `position` int(10) unsigned NOT NULL AUTO_INCREMENT,
  61.   `pid` int(10) unsigned NOT NULL,
  62.   PRIMARY KEY (`tid`,`position`),
  63.   KEY `pid` (`pid`)
  64. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
  65. 将 PRIMARY KEY (`tid`,`position`) 中的两个字段对调,即将 PRIMARY KEY (`tid`,`position`) 改成 PRIMARY KEY (`position`, `tid`) 然后保存文件
  66. 三、将修改后的 SQL 数据库文件导入到数据库,如果你是要自己转数据表为 InnoDB,则分别运行 ALTER TABLE `<表名>` ENGINE InnoDB; 将每一个数据表转成 InnoDB 存储引擎的数据表,当然,我们也可以批量转存储引擎,这不是本文讨论的重点,就不在此赘述了;如果你使用不支持 MyISAM 甚至只支持 InnoDB 的云数据库,在你导入 SQL 文件时云数据库会自动把存储引擎改成 InnoDB.



  67. 经过以上步骤,现在 Discuz! X 3.4 就可以完美支持 InnoDB 了,低于 3.4 版本的 Discuz! 版本理论上讲也一样能改。吴先成提醒大家:Discuz! 官方会在 Discuz! X 3.5 中解决这个问题,不过 Discuz! X 3.5 跳票了,正式版不知道什么时候能发布,不着急的话可以耐心等待官方发布。
复制代码
回复

使用道具 举报

23

主题

5265

回帖

9397

积分

应用开发者

贡献
498 点
金币
1416 个
QQ
发表于 2024-1-2 17:14:56 | 查看全部
cnmt 发表于 2024-1-2 16:15
找到个方法。不知行不行

网上的方法基本都是不太正确的,会影响以后的数据
回复

使用道具 举报

14

主题

34

回帖

60

积分

渐入佳境

贡献
0 点
金币
10 个
 楼主| 发表于 2024-1-2 17:29:19 | 查看全部
湖中沉 发表于 2024-1-2 17:14
网上的方法基本都是不太正确的,会影响以后的数据

好。还是升3。5吧
回复

使用道具 举报

13

主题

3152

回帖

5361

积分

应用开发者

贡献
372 点
金币
169 个
QQ
发表于 2024-1-3 14:51:47 | 查看全部
cnmt 发表于 2024-1-2 17:29
好。还是升3。5吧

升级3.5 不难的……参考 常见问题, 认真操作, 基本都可以自己搞定的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 关注公众号
  • 有偿服务微信
  • 有偿服务QQ

手机版|小黑屋|Discuz! 官方交流社区 ( 皖ICP备16010102号 |皖公网安备34010302002376号 )|网站地图|star

GMT+8, 2025-5-7 23:37 , Processed in 0.075602 second(s), 31 queries .

Powered by Discuz! W1.0 Licensed

Cpoyright © 2001-2025 Discuz! Team.

关灯 在本版发帖
有偿服务QQ
有偿服务微信
返回顶部
快速回复 返回顶部 返回列表