找回密码
 注册
查看: 506|回复: 8

(1146) Table 'bbs168xcn.common_member_archive' doesn't exist最新解决办法

[复制链接]

0

主题

0

回帖

9

积分

管理员

积分
9
QQ
发表于 2023-8-17 12:40:37 | 显示全部楼层 |阅读模式
(1146) Table 'bbs168xcn.common_member_archive' doesn't exist最新解决办法4 X2 \3 ]) Z: a; q) k
Discuz! Database Error(1146) Table 'bbs168xcn.common_member_archive' doesn't existSELECT COUNT(*) FROM common_member_archive
+ j  n. q# e; X

: Z2 v( I9 N* j% Y# ]- PPHP Debug
2 n9 g. }$ v" }8 d" q3 V. d
No.FileLineCode
1misc.php98require(%s)
2source/module/misc/misc_stat.php29getstatvars(%s)
3source/module/misc/misc_stat.php91call_user_func(%s, %s)
4getstatvars_basic(%s)
5source/module/misc/misc_stat.php101table_common_member->count()
6source/class/table/table_common_member.php172table_common_member_archive->count(%d)
7source/class/table/table_common_member_archive.php48discuz_database::result_first(%s, Array)
8source/class/discuz/discuz_database.php117discuz_database::query(%s, Array, false, false)
9source/class/discuz/discuz_database.php136db_driver_mysql->query(%s, false, false)
10source/class/db/db_driver_mysql.php153db_driver_mysql->halt(%s, %d, %s)
11source/class/db/db_driver_mysql.php224break()9 `0 `9 o; l  M* J
5 k+ g: x2 N0 a, ~4 \" d/ `- p

: i7 j5 e# y+ R1 i! F: F' v& {1 R3 h  z. X4 Z1 J2 e
3 m" \9 J$ H6 S$ O( v

$ S5 V% h, q; }2 P+ X, V  w以前都是进入数据库删除数据:
( V) x5 c! P8 f# fmysql> use bbs168xcn2 Z- T- s% p2 C& s  j6 w( L
Reading table information for completion of table and column names
$ ?! E) s2 o' B: c8 b" |4 J( ^6 ~9 KYou can turn off this feature to get a quicker startup with -A0 P5 I" p+ m* ~+ t1 x

; s3 Y* T" o+ X. J6 s1 M4 Y8 EDatabase changed; L% c' R% _6 |0 U( [: h& `0 B
mysql>  DELETE FROM `common_setting` WHERE `skey` = 'membersplit';4 D/ l: ?- t! G0 a( ~3 h
Query OK, 1 row affected (0.00 sec): q0 V4 K8 ?' W0 m( |

  w, s! ^8 x, I. M( J2 A" vmysql>
$ }7 |$ g: |! o) C  w% v% F+ j( Z, U1 F
感觉效果不是很好。6 J. u/ L; k- _

- O, h. U/ [0 N9 w0 [* N; N以下方式比较好的解决这个问题:( e0 y% ], c& Q! [2 y( K% ~
登录到后台>>>>选择论坛>>>>点击板块管理>>>>>随便选择一个板块名称,要求是二级版块,一级版块好像有些不行 >>>>$ ?, e% g; t2 C8 o; R
点击设置复制>>>>>出现的两个框分别是 目标版块项目选择  .>>>>目标版块选择全部(使用crtl+a) >>>>项目选择使用  >>>允许使用【img】代码  >>>点击提交。刷新页面即可。- }2 L/ @7 L% K& w

5 F' o$ [6 Q1 X/ {& H6 i  l- J" K# C
' u/ U5 x# {  s

0

主题

0

回帖

9

积分

管理员

积分
9
QQ
 楼主| 发表于 2023-8-19 08:17:52 | 显示全部楼层
经常出现这个问题,怎么回事?
  j* a. b0 l; v) n2 n" d0 D5 a
: p7 q3 d5 {; B, O( ^$ j. E0 _Discuz! Database Error
1 r8 u3 p7 s' W# }+ l# i6 l(1146) Table 'bbs168xcn.common_member_archive' doesn't exist
" j) o: H' V, a$ q  [8 ?+ WSELECT COUNT(*) FROM common_member_archive  @! O& {7 ]6 Z7 R
PHP Debug
  q# W- K. y. H) M5 y; ]3 U/ T# m% s' A3 V8 f
No.        File        Line        Code  b5 C! d4 a! W+ F5 K4 q
1        misc.php        98        require(%s)
6 n0 \" `& [/ j) x2        source/module/misc/misc_stat.php        29        getstatvars(%s)
2 b1 y* `/ X* U( a7 c+ A2 o3        source/module/misc/misc_stat.php        91        call_user_func(%s, %s)
" o( Y* n: u% p) {) t4                        getstatvars_basic(%s)
" }/ X, K5 G3 t  V  H5        source/module/misc/misc_stat.php        101        table_common_member->count()7 z. R# t! p4 U: v. a( s& N
6        source/class/table/table_common_member.php        172        table_common_member_archive->count(%d)& ~1 h" T" L( s# u; W; a, Y
7        source/class/table/table_common_member_archive.php        48        discuz_database::result_first(%s, Array)
' _- \3 P+ Z! o) u: n+ R' k  [8        source/class/discuz/discuz_database.php        117        discuz_database::query(%s, Array, false, false)
% O; ?0 K3 m8 z" L. `4 Q$ D4 W9        source/class/discuz/discuz_database.php        136        db_driver_mysql->query(%s, false, false)( N0 U& d1 B( P& t1 I
10        source/class/db/db_driver_mysql.php        153        db_driver_mysql->halt(%s, %d, %s)
3 v, t; S. U. K! z; r/ W; s11        source/class/db/db_driver_mysql.php        224        break()
, |$ K/ W3 E9 u

0

主题

0

回帖

9

积分

管理员

积分
9
QQ
 楼主| 发表于 2023-9-1 17:17:26 | 显示全部楼层
如果是数据表损坏请尝试修复表  s, R7 R3 w/ u2 P; o% ~: e# p
repair table tablename
$ O4 s* u; k( y' c1 k$ A7 N

0

主题

0

回帖

9

积分

管理员

积分
9
QQ
 楼主| 发表于 2023-9-1 17:17:37 | 显示全部楼层
mysql> use bbs168xcn2 P! I, k7 r9 B; u: A
Reading table information for completion of table and column names* S: q$ t- E. Z1 g0 Z; E
You can turn off this feature to get a quicker startup with -A1 Y6 H; h* ?  `

  q# E8 t8 e0 U! a: x% [% j( M  B" bDatabase changed1 m- X0 i/ \1 w. a0 F" j0 e: p  a
mysql> delete from `common_setting` where `skey`='membersplit';3 A3 {. h6 U9 [( ~. \4 o5 i
Query OK, 0 rows affected (0.00 sec)
' \% v' K' v) a* Z; N, D6 s, g4 B# L5 `+ r- R
mysql> repair table common_setting;- U- s! X, W3 A+ W2 q! c, t
+------------------------------+--------+----------+----------+$ T& ^" E( i/ x/ Q# E
| Table                        | Op     | Msg_type | Msg_text |
, H, A& W; ^0 g6 N4 J+ I/ u+------------------------------+--------+----------+----------+
  H9 J) u: q/ b; ]6 \! O/ V3 H* R| bbs168xcn.common_setting | repair | status   | OK       |
; E' v  O8 ]2 M% Y& i# u( V& y/ ?+------------------------------+--------+----------+----------+
8 \; m3 M" m3 u# z, n# }6 A( ^# V  T1 row in set (0.00 sec)* s# q9 s3 o9 U2 x/ E: s6 S
7 x1 @; r5 A+ V7 ?/ c. @3 v
mysql> select * from common_setting where 'skey'='membersplit' ;
/ S/ j6 i: c: P! yEmpty set (0.00 sec)
! U/ |& U2 o1 v2 ?# d: [1 r! d- ]# a4 z
mysql> delete from `common_setting` where `skey`='membersplit';
- I2 H5 X& }- p/ u& B  W* iQuery OK, 0 rows affected (0.00 sec)
& W% t9 o% V- X2 u2 |( V9 l! ^3 y! S0 \+ S
mysql>/ s0 e. _+ ]+ h& {; ]

0

主题

0

回帖

9

积分

管理员

积分
9
QQ
 楼主| 发表于 2023-9-1 18:05:56 | 显示全部楼层
问题现象+ q: e; n0 |# z% E9 s6 W
在重启RDS MySQL实例后,进行表相关操作时,提示如下错误:
. b; J# d8 P$ R
( `* @- ^' |. c' |- _0 lERROR 1146 (42S02): Table 'xxx.xxx' doesn't exist9 P7 r5 l- h' N; X
同时,在error log中可见如下记录:- P$ }7 B, G# `1 y8 U8 n

; R4 M  N/ E. G[Warning] InnoDB: Load table `xxx`.`xxx` failed, the table has missing foreign key indexes. Turn off 'foreign_key_checks' and try again.
6 l/ r9 i1 l8 n[Warning] InnoDB: Cannot open table xxx/xxx from the internal data dictionary of InnoDB though the .frm file for the table exists.
" h% p( o- [( W# ?6 m可能原因! u# `5 K- B8 h  H2 e+ ^# v4 x
MySQL中添加外键需要满足相应条件和限制,详情请见官方文档FOREIGN KEY Constraints。
. C6 d5 i, }8 D- P* \! k6 d* j9 l9 g! @
MySQL的外键限制检查是通过变量foreign_key_checks来控制的,该变量可以在RDS MySQL实例运行时修改,不需要重启实例,默认值为ON。若将foreign_key_checks设为OFF,除特殊情况外(详情请参见官方文档FOREIGN KEY Constraints),将关闭外键限制检查。
* S. j  A3 h( j2 V
9 ]0 B; O% h7 L+ M1 ]: X. r0 Z7 Z如果在关闭外键限制检查后,对外键进行了变更使其不满足外键限制,在RDS MySQL实例运行时不会报错。在重启实例时,由于重启时froeign_key_checks默认开启,InnoDB打开表时会进行外键限制检查,此时会报错。
' E6 U4 l+ n5 ?# l, R4 f6 w8 w
9 o4 l& r) D) N常见的情况有以下两种:
7 y/ X) C  T" T% h0 f. K# a/ Q3 [* e
更改了父表和子表外键相关列的字符集' W' V% {( f& X6 V+ Y& B
4 R  v' P; o" X  ^
MySQL 5.6、5.7、8.0允许在foreign_key_checks设置为OFF的情况下,修改父表和子表外键相关列的字符集。实例重启以后:
+ ^/ t: L2 L' k% p+ ^7 P  K" K7 w) {
MySQL 5.6、5.7会在error log中提示warning,同时无法使用父表。
1 a  A2 X/ c$ o( g" e) P; r# q$ e
MySQL 8.0不会在error log中提示warning,可以使用父表。
. Z; |9 D+ V4 o" N1 y$ N8 j9 d2 n
删除了父表和子表外键相关列的索引4 ~  k0 ^' v3 q; t$ H
0 ~$ Y% G" V3 S5 ~  i% T
对于MySQL 5.7、8.0:不允许在foreign_key_checks设置为OFF的情况下,删除父表和子表外键相关列的索引。
+ x3 u% g2 V- x( o3 J
; W) ]7 d$ X/ _( E7 u( H/ b% [  z对于MySQL 5.6:允许在foreign_key_checks设置为OFF的情况下,删除父表和子表外键相关列的索引。删除相关列索引后,重启实例会提示warning,同时被删除索引的表无法使用。
2 F$ S: O9 f; M' j: W8 F/ Q" A% N6 j0 _5 F
解决方案9 w2 N& v% ^2 K- a3 }% f, e
对于修改字符集导致的问题,将foreign_key_checks设置为OFF,将父表和子表外键相关列的字符集修改一致。
4 ~" l2 M/ o* k3 e
8 w* f" }; A# I# E5 C" g对于删除索引导致的问题,将foreign_key_checks设置为OFF,重建索引。

0

主题

0

回帖

9

积分

管理员

积分
9
QQ
 楼主| 发表于 2023-9-3 07:12:05 | 显示全部楼层
1、例如,mysql数据库的表内容太大,超过10G可能会影响discuz论坛的运转。
4 H7 U+ ?) b* j3 ~$ e5 w: Z1 b# i9 L) _/ c4 S3 Z
2、这种状况能够经过子数据库的方法来处理。有关详细信息,您能够搜索discuz官方网站以查找相关信息。
( T5 W8 `" ^  V9 C: d* z$ ?: H
0 g* }  P0 y2 G3 S+ W: j5 W3、数据库装备过错,有时可能是主机移动,数据库移动等,导致数据库信息填写不正确,或许旧数据库信息未及时更新,例如数据库用户名,暗码,数据库表填充过错。
1 p+ g  P# C) R* I
/ ~+ a; ?% t3 D- w4 h$ u/ B0 e' Q4 c4、您能够修正相关的数据库信息,您能够在config目录中找到config目录,修改数据库信息装备文件。Discus!3有三个参阅装备文件。仔细检查数据库装备和其他装备是否是最新的。. h/ [9 J! e6 O6 b% |; K

* }0 \$ n9 d* |4 t# P装置目录/config/config_global.php装置目录/config/config_ucenter.php装置目录/uc_server/data/config.inc.php。有关详细信息,请参阅discuz官方文档。( l" W% ?( P& m; K4 y! N/ T
( y3 \3 C) K2 ]1 M. y  |
5、数据库没有运转。2 t/ f3 r  B' j. E* n  z) D
% {* }- U6 ]" Z# G1 V8 N# R! j
6、检查主机的mysql数据库程序是否正在运转或已关闭。假如它是虚拟主机,您能够联络空间提供商以将其打开。假如虚拟主机不支持mysql数据库,则能够经过替换主机或空间提供程序来处理此问题。
) u. S. `8 l/ D5 s! C; L图片[1]-discuz! database error什么意思(如何解决)-小白之家,discuz!databaseerror如何解决,原因一:数据库表太大2 R7 W* }- Z( h" Q
# n9 ]- x7 ^# d. L" |
比方mysql数据库的表内容太大,超过10G就有可能会影响discuz论坛的运行。
: Y& a* j* R$ l' W( A0 Q; j$ q( v  m4 i- r
Discuz!DatabaseError是什么原因,怎样修正( ^' e6 k: ]* H+ d" x! I* n0 u
' W2 a6 O( ?, ?% j+ J: u  n/ E. C
这种状况能够经过对数据库分表的方法来解决。1 @. t. s6 S, K1 }
" d  }8 m9 b$ x
原因二:数据库装备过错2 V' F7 o$ k9 t4 }

1 x4 ?6 Q/ [: z  l! p有时候可能是主机搬迁、数据库搬迁等,形成数据库信息填写过错,或旧数据库信息没有及时更新等,比方数据库用户名、密码、数据库表填写过错等。+ c8 @: q) a9 C# h  g7 r

0 K9 N. u% n; \$ }& e2 ^4 f' x能够批改一下相关数据库信息即可,能够找到config目录,修改config目录中的数据库信息装备文件。Discus!3的参考装备文件有三个,仔细检查一下里面的数据库装备和其他装备是不是最新的。安装目录/config/config_global.php安装目录/config/config_ucenter.php安装目录/uc_server/data/config.inc.php。详细可查阅discuz官方文档。
2 p! x  _& i5 `: p( @, W
% f: ?1 s# p) ~; v原因三:数据库没有运行
& V, i5 E( E9 m. Y
% H# s: I7 j5 m8 L4 q4 s3 I, C检查一下主机的mysql数据库程序是否正在运行或已经关闭/ W4 O8 R, @; e' G, Y6 r: I

3 O5 Z! ]2 p9 E1 a3 ^/ p原因四:数据库过错& E: E# L/ D  ~2 f- }2 o& q# N  |

7 c/ [+ y+ A- w) r- ]1 D: j4 G可运用discuz官方小东西Discuz!Tools来对数据库进行修正。到discuz官方下载tools东西,解压上传到网站相关目录,然后打开链接、输入密码,修正数据库->一键修正就行了。修正完成记得删去Discuz!Tools相关文件。
) o! i8 r. K- C5 j
# Y1 ~) t5 {2 Q4 Y+ P, H) YDiscuz!DatabaseError是什么原因,怎样修正) F' Q: A" a7 h; F
( Q3 ^2 j3 L6 ]6 }* M
原因五:数据库繁忙
+ C9 G) |) w6 I
9 e/ M4 e2 Q9 r- [1 M( E) g9 D能够登录discuz后台,开启【贴子缓存】、【主页缓存】,能够缓解数据库繁忙的问题。  ?! d4 w) c/ Q8 u* m
, B: r  b/ J3 F) ]0 I9 r* U
Discuz!DatabaseError是什么原因,怎样修正
8 H1 V6 ^1 r2 p5 d5 G+ I4 m3 Q$ Q5 `0 Z, T: l
详细可参阅discuz官方性能优化的文档。
& o$ k# R- l1 g! T8 ]/ ^! |
( X/ D; q5 G* a/ Z2 qDiscuz!DatabaseError是什么原因,怎样修正: w8 }8 H" U  b& w

/ e1 Z3 V% U, A! l# M原因六、主机内存不够、不稳定1 `9 E* }8 U: U- F, f0 [
, @2 }% }6 b( t. L' Y; \
也有可能是主机不太稳定,可能是主机内存过小,杀死了mysql进程。3 X$ _: z) w* N/ p* J* g

' a' |6 {5 _$ ^" jDiscuz!DatabaseError是什么原因,怎样修正! L2 ?  t8 y; u% m2 G

- e/ T. Q3 W2 O- U# N; z原因七:可能是相关软件版别太旧5 o$ ^! W0 U! v+ Z6 J3 ]
" U- \# h; P* B  K, f) c- a
比方discuz版别、mysql数据库的版别是不是最新的、php的版别,服务器是否开启相关权限、php权限,是否支撑discuz系统等?

0

主题

0

回帖

9

积分

管理员

积分
9
QQ
 楼主| 发表于 2023-9-3 07:21:43 | 显示全部楼层
解决方法:# S% G! b3 w$ G7 X1 U

) S) I, E& z3 c$ w登陆后台,站长—数据库—升级(Discuz! 数据库升级 - 请将数据库升级语句粘贴在下面:)中执行语句
7 b+ g9 ^  W; ]8 v( q
. G- |+ N6 R3 s# j3 \  g9 g- i" HDELETE FROM `common_setting` WHERE `skey` = 'membersplit'; 1 ^+ d+ h" A) R- ~+ C& Q) \6 ^3 o
就可以了,若没有找到执行语句的输入窗口 则修改config/config_global.php 当中的 $_config[admincp][runquery] 设置修改为 1 (为了安全执行完该语句后 确认解决了1146错误后 再将配置该回来 )  刷新后再输入执行。3 {' G5 i) O& m" c' `" ^# Y$ h! [3 o
7 o5 v# ?( d4 j6 P' h5 M# ^
提示:为了数据安全执行该语句前建议备份数据。

0

主题

0

回帖

9

积分

管理员

积分
9
QQ
 楼主| 发表于 2023-9-3 07:25:28 | 显示全部楼层
论坛后台>>>站长>>>>数据库>>>  升级>>>>>   Discuz! 数据库升级 - 请将数据库升级语句粘贴在下面: ) q& |4 {4 |% s* Z# c# f% \) s( x0 A
5 ?' N+ D. \  A1 ^
输入:: e3 g; ~/ @/ H6 }5 M& r
DELETE FROM `common_setting` WHERE `skey` = 'membersplit'; 5 Q& Z# ], G' e+ C# p2 B
执行即可。
% ]" ]2 o7 B3 Q+ O7 e& \  z' M然后刷新页面即可。; o9 m) i# Q8 c+ R* b1 J

- A! g3 r9 f2 F0 b7 Y技巧提示
  j- ]  |+ f0 k! Y: j7 y您可以通过修改 /source/admincp/admincp_quickquery.php 来添加常用 SQL 操作进行功能扩充。' S* N& Q  u+ v' q" x9 y
出于安全考虑,Discuz! 后台默认情况下禁止 SQL 语句直接执行,只能使用常用 SQL 当中的内容,
0 D; b$ m( ?+ [# W) q. v如果您想自己随意书写 SQL 升级语句,需要将 config/config_global.php 当中的 $_config[admincp][runquery] 设置修改为 1。4 H" [: f! t; w; p) @
7 z. ~% a. a- D; E" Q+ u. b  f

( v% M6 d1 M4 D' l3 k8 LDiscuz! 提示
% T  b* e9 }4 K) _Discuz! 数据结构升级成功,影响的记录行数 0
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-11 22:59 , Processed in 0.022450 second(s), 26 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表