52AV手機A片王|52AV.ONE

 找回密碼
 立即註冊
快捷導航
  • 我愛av論壇BBS
  • 手機A片
  • 自拍偷拍外流區
  • 貼圖區
  • 52av裸聊室
  • 中文-中國主播
Yahoo!奇摩搜尋
熱搜: av4u論壇
Google搜尋
熱搜: av4u論壇
     
查看: 16054|回復: 0

[mysql] mysqld 升級到8以上遇到的問題

[複製鏈接]
發表於 2021-3-14 13:06:23 | 顯示全部樓層 |閱讀模式
(1)
' _7 Z+ m( S  Z. _$ W- {php連到mysql出現2行errors : (discuz網頁出現的是連接到mysql錯誤表格,需自行寫一隻連接mysql的php程式來測試)  z' O" l$ G5 s

( A( C0 C" u0 t; w# lmysqli_real_connect(): Server sent charset (255) unknown to the client. Please, report to the developers
( @1 ?+ b3 A/ h; I: H: x! Wmysqli_real_connect(): (HY000/2054): Server sent charset unknown to the client. Please, report to the developers
+ u( u9 u$ e( S% m. ~原因:
' M( m  L8 a: m/ a3 |* V: Q
在MySQL 8.0.21中,caching_sha2_password是默認的身份驗證插件,而不是以往的mysql_native_password。所以和php不相容。可以降級php,也可以修改MySQL的配置。 吾人決定修改MySQL的配置:( [! Z8 r6 G/ N& M9 L
vi /etc/my.cnf  加入下列:
. t: n, N% H5 _5 h! L[mysqld]2 D; O, U& I5 Y) f2 c8 g7 F' h

( h' v1 `1 m! `# Acharacter-set-server=utf8
5 a7 J2 g4 ?- I3 y0 @/ e9 zdefault_authentication_plugin=mysql_native_password
5 |8 D2 X9 T5 u3 a
validate_password.policy=LOW! H9 _0 T; j4 i3 w" R# ^8 h: @( m
[mysql]1 A7 _6 q- \6 l( W. ~, g: H
default-character-set=utf83 h, C  Q( |" l  X1 _- E

6 U4 r2 \5 ?6 C9 J9 ][client]) u( a0 p/ y9 f2 I/ L
default-character-set=utf8) I" [8 o6 {% m
) L3 e4 m; q( _& _, V/ i
然後重啟mysqld
5 y9 G2 a8 X" `' U' Dservice mysqld restart

& |5 `9 {3 Q/ n! X+ L0 E
, z9 C: w1 y' P' I; t0 Y0 B
重啟後可能須做下列動作:
1 m, f2 P3 I# Qmysql -u roor -p  
3 ^9 u/ F1 k; J5 X0 }& ^SHOW VARIABLES LIKE 'validate_password%';/ w& M' {6 W+ l) u. e; h& i0 {8 s
SET GLOBAL validate_password_policy=LOW;ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密碼';搞定!!6 g3 T7 p% B: @- M8 y, }1 n8 \, [7 w
) k8 ~3 V3 N/ x, p
註: mysqld啟動時,在/var/log/mysql/mysqld.log紀錄著:
註: 可以先寫支php程式以測試 ~~~7 O  e) w! @& H0 O  _
  1. <?8 q. l0 Z5 r) ~1 j
  2. $hostname = "x.x.x.x";! N! i+ M1 P" B9 [- Y
  3. $database = "db_name";, r; F& S! E. t  d+ S+ ~7 G; V, J
  4. $username = "user_name";- k; ~8 j3 y0 Z
  5. $password = "pwd";: z) U7 A3 e4 ]
  6. ; f) Y1 i* s2 f8 R
  7. $conn = mysqli_connect($hostname, $username, $password,$database) or trigger_error(mysql_error(),E_USER_ERROR);
    4 G/ x- G/ r1 j* |6 i0 W
  8. mysqli_query($conn ,"SET NAMES utf8");
    - G) K' P0 S& Y- P7 R) s

  9. ( v% r/ _4 c5 ]# P
  10. $sql = "select count(*) as total from " .  "table_name";
    . W3 @/ e5 `- T$ e: f- l. t
  11. $rec = mysqli_fetch_assoc(mysqli_query( $conn,$sql));
    / g2 d  N8 R' k: c/ `
  12. echo $rec['total'];
    : f" v/ S8 O8 u' V$ a6 D
  13. mysqli_close($conn);2 z% F* Z) B2 u- [0 c
  14. ?>
複製代碼
遊客,本帖隱藏的內容需要積分高於 999999999999 才可瀏覽,您當前積分為 0
6 Q( ?* Q7 E3 D% ?6 T

( b6 v+ D% u. ^0 b
/ G% i1 U* w* k1 S- G8 P當php 7.2.24  connect to mysql server,出現 :
  1. PHP Fatal error:  Uncaught Error: Call to undefined function mysqli_connect() in /test/connectmysql8.php:9
    - H9 ], y: s4 k
  2. Stack trace:
    1 Z) h! }8 G3 K- ]2 p6 w+ M% E
  3. #0 {main}  R) x* z, j) u6 y2 F
  4.   thrown in /test/connectmysql8.php on line 9
    2 h" s, R8 Z1 m# @( _1 i; @. A

  5. ' ~9 Q( u+ c2 ^! S, G  t" S
  6. Fatal error: Uncaught Error: Call to undefined function mysqli_connect() in /test/connectmysql8.php:9
    " P9 J0 b0 S; C; K
  7. Stack trace:
    ) a9 C3 [1 y& n6 q' v  {
  8. #0 {main}
    8 S! B1 R; t8 D! T' h/ _
  9.   thrown in /test/connectmysql8.php on line 9
複製代碼
這是版本相依的問題,只要 yum install php-mysqlnd  或 yum install php-mysqli 即可
2 Y4 t) k' J' D4 c# a. J
# l. x7 X: U1 c0 p7 H0 P! w  Y4 t6 c
: m& t8 ^  s  d  J  G[Warning] [MY-013242] [Server] --character-set-server: 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.
$ m/ u1 {2 F+ J* g說明: 千萬不能照它建議用"UTF8MB4",否則無法成功啟動4 Q; R% f2 D* Y/ s; p, z
  y! S0 z6 j9 L
(2)
% u1 s" E& v) {9 `' j( [(1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'system>0' at line 1
9 Z& E5 w( n+ Y4 t8 YSELECT COUNT(*) FROM common_usergroup WHERE type='special' and system>03 ]- g; B7 t/ {; Z

( |6 j; G) w* y: j" T! ^( u6 {; J(1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'groups = '' AND starttime<=1532077291 AND (endtime>=1532077291 OR endtime=0) ORD' at line 18 j6 x- X$ \) m( V6 l8 s& w( c
SELECT * FROM forum_announcement WHERE type!=2 AND groups = '' AND starttime<=1532077291 AND (endtime>=1532077291 OR endtime=0) ORDER BY displayorder, starttime DESC, id DESC LIMIT 1
; D  y4 @3 @" C# T1 z! x2 \- l- K& M8 j9 _2 s; w
因為MySQL 8.0+將system和groups作為了關鍵字,所以不能直接在SQL中將system和groups這兩個詞作為數據庫、數據表、數據表字段中的任意一種使用,如果數據庫名或數據表名或數據表字段名使用了system或groups作為名字,必須使用一對反引號引用起來。寫作`system`或`groups`。$ g1 Q% g3 g, }. l+ g2 n; i; w
5 m" t6 Q8 j% e5 x& P$ y
第一個錯誤需要找到Discuz!目錄中的source\class\table\table_common_usergroup.php,
( t$ |- o( u8 Z2 L) i將文件中所有的system全部改成`system`,保存後重新上傳到服務器的相同目錄即可。
9 H0 V3 d& q; t! o1 p2 o" F) A1 B3 n. B& z  _2 d6 [5 Q; H) }
第二個錯誤需要找到Discuz!目錄下中的source\class\table\table_forum_announcement.php,1 M* D$ K* P" m  ^, k! E5 H
將文件中所有的groups全部改為`groups`,保存後重新上傳到服務器的相同目錄即可。
# n& r# C% a& F' g2 q4 E1 @( s
) C2 x9 }2 ^: @1 q/ G$ G% D4 h9 Z6 |如果在MySQL 8+環境下安裝Discuz!,在安裝前需要給install\data\install.sql文件中沒有加引號的所有system逐一添加一對反引號保存重新上傳到服務器的相同目錄,否則也會出現SQL語法錯誤。" H' b$ m( q% U, G, ?7 L- ~) A' E
5 Q' b! u6 l8 E; L
為了避免語法錯誤,在寫SQL語句時,一定要為所有的數據庫名、數據表名、數據表字段名全部添加一對反引號,像Discuz!這樣的寫法是很不妥的。
, Q8 F0 }" Q" }0 V5 ~, O1 @以上參考:   升級到 MySQL 8.0+ 後Discuz! 更新緩存時出現SQL語法錯誤
9 i6 _/ c* N. j7 S. W

' u2 j$ X3 \5 F* |5 w3 B
6 @' F) @- b& L7 e' I/ l* ^
9 @7 N. h. Y! j/ E( `* ?9 h, }3 G1 r( B2 b, s& j4 E2 E+ k( h/ o
回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

本區塊內容依據『電腦網路內容分級處理辦法』為限制級網站,限定年滿18歲以上或達當地國家法定年齡人士方可進入,且願接受本站各項條款,未滿18歲 謝絕進入瀏覽。為防範未滿18歲之未成年網友瀏覽網路上限制級內容的圖文資訊,建議您可進行網路內容分級組織ICRA分級服務的安裝與設定。 (為還給愛護 本站的網友一個純淨的論壇環境,本站設有管理員)

QQ|小黑屋|手機板|52AV手機A片王

GMT+8, 2026-5-21 07:25 , Processed in 0.007314 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

連絡站長.廣告招商

[email protected] | Telegram:@asa00061     since 2015-01

快速回復 返回頂部 返回列表