ย้ายเว็บจากเครือ่งใช้ plesk มาเป็น directadmin แล้ว error

มันจะเป็นการเว็บ พวก phpnuke กับ mambo นะครับ
โดยได้แก้ username password dbname และ path ในfile config แล้ว
แต่มันขึ้น error ประมาณเกียวกับ session นะครับมีใครมีปัญหาตอนย้ายเว็บแบบนี้บ้างไหม

######## phpnuke ##############
phpBB : Critical Error
Error creating new session
DEBUG MODE
SQL Error : 1036 Table ‘phpbb_sessions’ is read only
INSERT INTO phpbb_sessions (session_id, session_user_id, session_start, session_time, session_ip, session_page, session_logged_in, session_admin) VALUES (‘b9888c4fe44b0e56803355fc7339dd25’, -1, 1216091685, 1216091685, ‘7d189b2d’, 0, 0, 0)
Line : 172
File : sessions.php

##########mambo ###########3
mossession::store failed
DB function failed with error number 1036
Table ‘mos_session’ is read only SQL=INSERT INTO mos_session ( session_id,time,username,gid,guest ) VALUES ( ‘7412ccdc131d99f4fcb98f1059aa3243’,‘1216091761’,’’,‘0’,‘1’ )

ย้ายมายังไงหรือครับ
copy ไฟล์ฐานมาตรงๆหรือปล่าวเห็นมันขึ้นแบบนี้
Table ‘phpbb_sessions’ is read only

ลอง chown -R mysql:mysql

ย้ายผ่าน ssh copy โดยตรงจาก folder มา folder เลย
ได้แก้ owner แล้วนะครับก็ยังไม่ได้
เราตอ้งแก้ file อื่นนอกจาก configuration.php หรือเปล่าครับ

ผมลองใส่ข้อมูล repair database มันบอกว่าข้อมูลเป็นแบบ Read only
แต่ทำการ chmod 660 มันก็ยังขึ้นว่า Read only เหมือนเดิมนะครับ

ใช้ mysqldump แน่นอนกว่า
copy ไฟล์มาตรงๆเกิด error ตรงใหนตรวจสอบลำบาก
แล้วมันยังต้องเปลี่ยนชื่อ db ใหม่อีก

คุ้นๆว่า การตั้งชื่อ db ของ DA กับ plesk ไม่เหมือนกันน่ะครับ
ของ DA จะมีอะไรนำหน้าก่อน

หลักการนำ raw db ของ mysql มาลงตรงๆทำดังนี้

  1. สร้าง db ใหม่ที่ DA/CP ก่อนเช่น admin_mydb1
  2. copy ไฟล์ table ใน db ที่จะ copy มาใส่ใน admin_mydb1

เท่านี้เองครับ…

ปัญหาในการแจ้งข้อมูล… แจ้งไม่ละเอียดพอนะครับ คุณควรอธิบายตั้งแต่ copy จากเครื่องอย่างไร เช่น… copy มาทั้ง folder (db_name) และนำมาลงใน /var/lib/mysql แบบนี้ไม่ถูกต้อง

โดยหลักการควรใช้คำสั่ง tar ในการเก็บข้อมูลมาโดยให้มี permission ของ folder/files นั้นๆติดมาด้วย
คำสั่งคือ --> tar cvfzp desc.tgz *
แล้วนำมาแตก
คำสั่งคือ --> tar zxvfp desc.tgz

mysql server จะเก็บ permission & grant ต่างๆไว้ที่ table mysql หากคุณไม่ได้สร้างจากตัว mysql server ตัวมันเอง permission&grant access จะไม่มี

ก็เป็นอย่างที่เห็นครับ… ทางแก้คือเราสร้าง db ขึ้นอย่างที่บอกข้างบนครับ
นี่คือบทสรุป.

ลองดู permission ด้วยครับ ตอน copy มา ถ้าเอามาทั้ง dir
ทางที่ดี stop MySQL ก่อนก็ดีครับ มั่นใจกว่า

ได้แล้วครับ เปลี่ยน owner แล้วมันต้อง restart mysql ถึงจะใช้ได้นะครับ