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

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

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2023-8-17 12:40:37 | 显示全部楼层 |阅读模式
(1146) Table 'bbs168xcn.common_member_archive' doesn't exist最新解决办法* o/ r& E+ M4 a9 }+ Y
Discuz! Database Error(1146) Table 'bbs168xcn.common_member_archive' doesn't existSELECT COUNT(*) FROM common_member_archive
; M9 m6 j# S& L* }5 B
  H1 e& k& I5 N4 }4 c
PHP Debug
4 S$ e$ e* `5 m3 P2 t1 H% g
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()
+ r0 n8 E( f: v& [& e2 j  |4 l) K

) g: t8 _6 b" v% y3 P
% {# P7 B4 `% L( n
. j2 D* J+ f7 @/ ~! }7 k& b1 o) |
以前都是进入数据库删除数据:7 E' Z  C; U5 _6 U  a$ r/ y
mysql> use bbs168xcn0 L3 T2 s0 C2 J- f5 G- s! \
Reading table information for completion of table and column names
, N. {$ e0 M( W0 ^/ MYou can turn off this feature to get a quicker startup with -A3 k% N+ A0 ^+ Q. m9 D2 S1 D
* d- Z$ B* f& u$ \4 g/ N
Database changed
3 b$ Q- _! G- e5 I0 umysql>  DELETE FROM `common_setting` WHERE `skey` = 'membersplit';9 M  A, q, ~9 f( E
Query OK, 1 row affected (0.00 sec). D. C2 L: m8 y6 L0 `2 \/ ?

3 r) c) \: o) f9 _; s$ {( ?mysql>
0 z1 v/ J. t7 `- A- F2 q0 z& U4 Z' |# w
感觉效果不是很好。
6 F2 F2 y+ j5 `6 ~7 }2 B1 L% ^; l( V# U" C8 Y+ K" {2 M" D
以下方式比较好的解决这个问题:
4 M$ z% K7 a( X+ C" _登录到后台>>>>选择论坛>>>>点击板块管理>>>>>随便选择一个板块名称,要求是二级版块,一级版块好像有些不行 >>>>
3 z  v: f2 B; O8 y- X点击设置复制>>>>>出现的两个框分别是 目标版块项目选择  .>>>>目标版块选择全部(使用crtl+a) >>>>项目选择使用  >>>允许使用【img】代码  >>>点击提交。刷新页面即可。
8 w& ]7 e+ u/ y7 ~8 s' H% J
4 ~% @) y" ]- [# `: R( }

" e; {1 f; N% V/ k5 ^' m

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-8-19 08:17:52 | 显示全部楼层
经常出现这个问题,怎么回事?
$ ^# g9 X/ ?+ K% `5 W3 s7 w
$ Z# G( ^" W4 lDiscuz! Database Error2 w# u& G  L1 ~
(1146) Table 'bbs168xcn.common_member_archive' doesn't exist
1 I& a2 o1 d1 |, H) [) rSELECT COUNT(*) FROM common_member_archive/ u& z/ h4 q# T  o  [
PHP Debug- f% _2 c* I5 L( F

5 g! T; }6 K. b. ENo.        File        Line        Code
6 Z6 j+ h' \2 _1        misc.php        98        require(%s)( \  g) V5 N& z& N
2        source/module/misc/misc_stat.php        29        getstatvars(%s)
6 @( _3 a0 }# N- f3        source/module/misc/misc_stat.php        91        call_user_func(%s, %s)3 k- a) W" W, f. ^
4                        getstatvars_basic(%s)" f$ ^$ i- U5 W( s1 s: d+ F
5        source/module/misc/misc_stat.php        101        table_common_member->count()' D# i; f- {: G8 K9 C/ X6 F
6        source/class/table/table_common_member.php        172        table_common_member_archive->count(%d)- v; ?/ b& ]/ z; _  G8 m5 j
7        source/class/table/table_common_member_archive.php        48        discuz_database::result_first(%s, Array): ?: m6 n7 t/ x# l& D
8        source/class/discuz/discuz_database.php        117        discuz_database::query(%s, Array, false, false)
2 f% T' N) @; J- [6 E( G& m% g9        source/class/discuz/discuz_database.php        136        db_driver_mysql->query(%s, false, false)" h" H: W( h# i; ?
10        source/class/db/db_driver_mysql.php        153        db_driver_mysql->halt(%s, %d, %s)
5 T# W- J; s3 J, V5 y' n# w8 v11        source/class/db/db_driver_mysql.php        224        break()
1 M3 j) d% ^! ]! d' l# j4 ]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-9-1 17:17:26 | 显示全部楼层
如果是数据表损坏请尝试修复表; v, N" G- Y! N7 u6 Y8 d
repair table tablename
  B9 d: \7 w: d

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-9-1 17:17:37 | 显示全部楼层
mysql> use bbs168xcn
3 Y+ A, W4 l! Z; Z( ]Reading table information for completion of table and column names, l. ?/ e3 r0 r8 S
You can turn off this feature to get a quicker startup with -A
+ c. B" o- h  O; ^# v/ s' Y4 B! K: u6 z% X4 W0 M  w. Z% @3 M+ M
Database changed% j# s; Z0 l! Y) B- p! @
mysql> delete from `common_setting` where `skey`='membersplit';
  C  P. \8 y# hQuery OK, 0 rows affected (0.00 sec)
/ y  ?7 ^6 g2 C+ ^( C0 i6 [! M" H2 I" u: q! g  r
mysql> repair table common_setting;; e' l! Y" r# c0 s
+------------------------------+--------+----------+----------+/ y! ]# W5 L3 @. i4 c
| Table                        | Op     | Msg_type | Msg_text |3 i. E2 k) T5 g& l9 E: Y& {
+------------------------------+--------+----------+----------+
9 Y9 c; r; J5 X! A7 o  f2 N* || bbs168xcn.common_setting | repair | status   | OK       |( P& j! c" A  H: x* I# U/ X
+------------------------------+--------+----------+----------+3 w: o9 P7 D2 Q. x" a
1 row in set (0.00 sec)
  N7 R- Z" L9 B0 _: v7 }3 w: _: d, V$ ?4 g+ W' S
mysql> select * from common_setting where 'skey'='membersplit' ;/ w$ f: o3 ?) d6 \
Empty set (0.00 sec)
0 K! L6 Q: O2 s6 G& E6 H' T) x/ n
mysql> delete from `common_setting` where `skey`='membersplit';
+ J) q. |. |, o" s' \5 ?Query OK, 0 rows affected (0.00 sec)
3 }4 s0 ?; j) c, r8 u7 R' A! d1 i& o! f3 z
mysql>
5 X. f4 G9 V5 z, |8 S* Y

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-9-1 18:05:56 | 显示全部楼层
问题现象" g/ g5 W) D  ?! ?8 s1 J5 i
在重启RDS MySQL实例后,进行表相关操作时,提示如下错误:; b0 k+ H6 w/ x  k

  l) p- O, S, e* m# [ERROR 1146 (42S02): Table 'xxx.xxx' doesn't exist
% _  k* v$ X, o, C6 L) w5 \3 W同时,在error log中可见如下记录:
, u0 t# n+ g. r% b: t7 h. t6 _% X% ^5 B
[Warning] InnoDB: Load table `xxx`.`xxx` failed, the table has missing foreign key indexes. Turn off 'foreign_key_checks' and try again.8 `  H3 {% F5 N& K
[Warning] InnoDB: Cannot open table xxx/xxx from the internal data dictionary of InnoDB though the .frm file for the table exists.
( Q; v  z+ r/ {可能原因/ n0 ^4 [1 A, P# l! [, h% }
MySQL中添加外键需要满足相应条件和限制,详情请见官方文档FOREIGN KEY Constraints。
) h6 l& b# O! L/ a! B2 B1 U
  n& A; B3 j- `+ ~( G4 p2 yMySQL的外键限制检查是通过变量foreign_key_checks来控制的,该变量可以在RDS MySQL实例运行时修改,不需要重启实例,默认值为ON。若将foreign_key_checks设为OFF,除特殊情况外(详情请参见官方文档FOREIGN KEY Constraints),将关闭外键限制检查。
3 R5 M! S  B8 P+ R
+ y& H6 E9 _/ x) G- K& S如果在关闭外键限制检查后,对外键进行了变更使其不满足外键限制,在RDS MySQL实例运行时不会报错。在重启实例时,由于重启时froeign_key_checks默认开启,InnoDB打开表时会进行外键限制检查,此时会报错。
3 S( z- @2 ]: G5 @6 l4 j" h5 y' I4 G0 ^. x' a& z8 [4 [9 d
常见的情况有以下两种:
  L7 g0 a: K- T9 ]1 e! ?! F; `; P3 f' C- W
更改了父表和子表外键相关列的字符集) `% X& b9 ?$ }, J# K

: A, O% l% j" [7 w$ d( S0 @MySQL 5.6、5.7、8.0允许在foreign_key_checks设置为OFF的情况下,修改父表和子表外键相关列的字符集。实例重启以后:
$ f& O6 I5 S& s' w  a3 o& ?" N9 Z, A. d6 U
MySQL 5.6、5.7会在error log中提示warning,同时无法使用父表。
& w9 l) y7 T4 m+ j! t3 x7 w- _( |3 j
7 c% W8 Z$ u; M  {" M- p9 BMySQL 8.0不会在error log中提示warning,可以使用父表。1 o6 H& R$ R. g8 U1 q$ V7 v+ o
2 V! J* b, f4 z# x
删除了父表和子表外键相关列的索引
8 a& p+ q8 F7 I& _8 o/ _" P! f: b" N% S/ V$ i- X
对于MySQL 5.7、8.0:不允许在foreign_key_checks设置为OFF的情况下,删除父表和子表外键相关列的索引。
5 C, T8 X* F/ N! a! |- o- H
5 R  |$ ^8 p9 C" \, o* a对于MySQL 5.6:允许在foreign_key_checks设置为OFF的情况下,删除父表和子表外键相关列的索引。删除相关列索引后,重启实例会提示warning,同时被删除索引的表无法使用。
8 c+ ~! a+ C1 R4 n6 }+ _) A
. f  K3 }' i; R, ^- n3 L解决方案. u7 W" n2 q+ A
对于修改字符集导致的问题,将foreign_key_checks设置为OFF,将父表和子表外键相关列的字符集修改一致。
4 S+ s6 c! r" Z  z6 i
$ m, O# ?' |$ r# V( o' ]对于删除索引导致的问题,将foreign_key_checks设置为OFF,重建索引。

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-9-3 07:12:05 | 显示全部楼层
1、例如,mysql数据库的表内容太大,超过10G可能会影响discuz论坛的运转。4 s/ v9 e1 i% V( f
+ i' o! n9 M7 x& j. ~- ^
2、这种状况能够经过子数据库的方法来处理。有关详细信息,您能够搜索discuz官方网站以查找相关信息。
! o4 S; g  v, n6 C( [
9 {/ D& p9 t: ]. P" l; ?; W% c" V4 l3、数据库装备过错,有时可能是主机移动,数据库移动等,导致数据库信息填写不正确,或许旧数据库信息未及时更新,例如数据库用户名,暗码,数据库表填充过错。
$ b, A" j0 ^( P' f
8 n# M& l4 y8 y4、您能够修正相关的数据库信息,您能够在config目录中找到config目录,修改数据库信息装备文件。Discus!3有三个参阅装备文件。仔细检查数据库装备和其他装备是否是最新的。+ P3 d3 H- \* j  P& W
8 t# a, r9 u+ n, f0 i7 L; G" O2 B& T
装置目录/config/config_global.php装置目录/config/config_ucenter.php装置目录/uc_server/data/config.inc.php。有关详细信息,请参阅discuz官方文档。
- X1 @* z7 o( }3 f" X8 Z- I# u6 @+ Y! L6 ^) Y" G7 @+ m
5、数据库没有运转。
1 t4 g/ p  W, A1 g# g  c6 U  R' k9 I* B% `5 Q- S# J
6、检查主机的mysql数据库程序是否正在运转或已关闭。假如它是虚拟主机,您能够联络空间提供商以将其打开。假如虚拟主机不支持mysql数据库,则能够经过替换主机或空间提供程序来处理此问题。8 C# ?! w) U! E9 D" S4 Z5 T4 t9 X/ p
图片[1]-discuz! database error什么意思(如何解决)-小白之家,discuz!databaseerror如何解决,原因一:数据库表太大$ ]' ?5 Z3 V  S2 D; k6 c% q( a3 `8 t) n

; h' m5 F/ X$ U$ z  Z) I  M比方mysql数据库的表内容太大,超过10G就有可能会影响discuz论坛的运行。) }* z3 K- ^8 R, R
) u- d5 x* A' T# c* h, W
Discuz!DatabaseError是什么原因,怎样修正! K- b" N& C2 E% u9 k  W, D( r
6 ~( ?, L( i. o5 C
这种状况能够经过对数据库分表的方法来解决。1 ?' U. w6 U8 {- k
. V+ x6 {' _" M& [! z# g7 O
原因二:数据库装备过错
) t0 J% ~. m% U. d: U. F% U" o+ F0 m* J
有时候可能是主机搬迁、数据库搬迁等,形成数据库信息填写过错,或旧数据库信息没有及时更新等,比方数据库用户名、密码、数据库表填写过错等。1 `/ R4 Z1 }+ i* r5 W
9 Z( h( O7 N( \/ Y* I
能够批改一下相关数据库信息即可,能够找到config目录,修改config目录中的数据库信息装备文件。Discus!3的参考装备文件有三个,仔细检查一下里面的数据库装备和其他装备是不是最新的。安装目录/config/config_global.php安装目录/config/config_ucenter.php安装目录/uc_server/data/config.inc.php。详细可查阅discuz官方文档。
9 v5 g) o1 m) n, c8 ?* R1 E
8 y7 Y1 d7 i7 b" O, Q  M$ P原因三:数据库没有运行$ B+ u) S6 }# H! r% V) v1 C
" `  |9 ]0 p$ _/ ^9 s/ s1 G# |, w
检查一下主机的mysql数据库程序是否正在运行或已经关闭; ]) {2 K3 M# r) G: f

/ k6 a2 {5 v3 z8 Q" M原因四:数据库过错
; ~. g$ _. v! }  P2 R
' W9 ?7 w- g+ O: d! q- x可运用discuz官方小东西Discuz!Tools来对数据库进行修正。到discuz官方下载tools东西,解压上传到网站相关目录,然后打开链接、输入密码,修正数据库->一键修正就行了。修正完成记得删去Discuz!Tools相关文件。9 \2 ]9 m, g# }  k& l1 n! H

3 u3 G, I( m, z1 U$ Q+ zDiscuz!DatabaseError是什么原因,怎样修正
9 T3 K1 p  ?5 l" s' z6 X# d* i# n' L4 O# i. h8 [$ I
原因五:数据库繁忙- J& G" |) X1 Q" P- N9 i

2 h+ L9 T7 u! r; @8 a能够登录discuz后台,开启【贴子缓存】、【主页缓存】,能够缓解数据库繁忙的问题。
( Q: Y# l7 ?8 k) B; s7 _6 a) e1 T# C, y. o5 m- ?6 o
Discuz!DatabaseError是什么原因,怎样修正9 X& r( P- T! H# v' X1 L% x+ X3 H3 D: m

1 w* f8 S' Z  ]  E5 H详细可参阅discuz官方性能优化的文档。
2 P% T- m" c7 k- k; i' M
2 o5 ?9 Q5 ~1 g! M. E  fDiscuz!DatabaseError是什么原因,怎样修正1 f6 v/ c' K3 T% I' p) W
+ o7 Z: }1 I$ l& V! b, c+ J, G% ]
原因六、主机内存不够、不稳定$ E) E' N. u4 V% F, X
1 Y$ ~# a' C; o
也有可能是主机不太稳定,可能是主机内存过小,杀死了mysql进程。0 b3 r$ T) w. p, F8 z: a, R/ V
" D+ i8 p! D9 X7 ~. P: V
Discuz!DatabaseError是什么原因,怎样修正
& \6 c7 O0 C9 w7 f3 m) g9 M* x* _" \1 ^2 x0 F6 L! b
原因七:可能是相关软件版别太旧" x) c+ u9 W( G4 V# Q

0 `% C" \3 ?9 Q6 P3 B0 a比方discuz版别、mysql数据库的版别是不是最新的、php的版别,服务器是否开启相关权限、php权限,是否支撑discuz系统等?

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-9-3 07:21:43 | 显示全部楼层
解决方法:4 J- J  q7 l3 t, m/ j. C3 @+ w

8 r; k: y% r: c; q( B登陆后台,站长—数据库—升级(Discuz! 数据库升级 - 请将数据库升级语句粘贴在下面:)中执行语句
. T+ `& g7 K, r4 U. B* a5 a9 w% n# H+ \% Z& A( t, H
DELETE FROM `common_setting` WHERE `skey` = 'membersplit'; ; b: z5 i' d# X9 x0 h# j
就可以了,若没有找到执行语句的输入窗口 则修改config/config_global.php 当中的 $_config[admincp][runquery] 设置修改为 1 (为了安全执行完该语句后 确认解决了1146错误后 再将配置该回来 )  刷新后再输入执行。
" \# i+ G9 G8 r5 N% V4 O7 F; T2 ]* W7 }) x- ^0 @
提示:为了数据安全执行该语句前建议备份数据。

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-9-3 07:25:28 | 显示全部楼层
论坛后台>>>站长>>>>数据库>>>  升级>>>>>   Discuz! 数据库升级 - 请将数据库升级语句粘贴在下面: . F9 q3 b' `) T5 R9 K. b4 l. X# Q6 t$ w

6 H- W8 x. r7 x+ o( Z8 }0 H输入:4 V5 D0 v- j' e* e, |/ N
DELETE FROM `common_setting` WHERE `skey` = 'membersplit';
% L! F  O& ~( v! h: B& s  }! d执行即可。- ^! I! C& ?, m+ L( n) o, M
然后刷新页面即可。) @5 m( P2 v7 g( p- E

2 h! U0 U6 A" T6 ?技巧提示
- q. a6 ?) ~0 H" C: Q您可以通过修改 /source/admincp/admincp_quickquery.php 来添加常用 SQL 操作进行功能扩充。. G- p: S* ^/ s
出于安全考虑,Discuz! 后台默认情况下禁止 SQL 语句直接执行,只能使用常用 SQL 当中的内容,' ]2 b1 M  H5 `4 X, X. n. q
如果您想自己随意书写 SQL 升级语句,需要将 config/config_global.php 当中的 $_config[admincp][runquery] 设置修改为 1。5 V" ~3 V5 [# `! R

7 \/ M3 p6 e0 u1 S" _+ |6 b2 v7 g
5 U8 P4 H$ h- hDiscuz! 提示
* U7 ?. H" R4 x8 ]! NDiscuz! 数据结构升级成功,影响的记录行数 0
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-12 00:18 , Processed in 0.020241 second(s), 26 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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