ฉันติดตั้งเซิร์ฟเวอร์ mysql 5.6.24 บน Windows Server 2012 R2 แล้ว
ฉันอิมพอร์ตไฟล์ดัมพ์และไฟล์ข้อมูลถูกเก็บไว้ C:\ProgramData\MySQL\MySQL Server 5.6\data
D:\ProgramData\Data
ฉันต้องการที่จะเปลี่ยนไดเรกทอรีเช่น
คุณช่วยฉันได้ไหม
ฉันติดตั้งเซิร์ฟเวอร์ mysql 5.6.24 บน Windows Server 2012 R2 แล้ว
ฉันอิมพอร์ตไฟล์ดัมพ์และไฟล์ข้อมูลถูกเก็บไว้ C:\ProgramData\MySQL\MySQL Server 5.6\data
D:\ProgramData\Data
ฉันต้องการที่จะเปลี่ยนไดเรกทอรีเช่น
คุณช่วยฉันได้ไหม
คำตอบ:
เปิด Windows CLI ในฐานะผู้ดูแลระบบและปิดระบบ MySQL
net stop mysql
คัดลอกข้อมูลไปยัง D:\ProgramData\Data
xcopy /s C:\ProgramData\MySQL\MySQL Server 5.6\data D:\ProgramData\Data
สร้างหรือแก้ไข C:\ProgramData\MySQL\MySQL Server 5.6\my.ini
เพิ่มลงใน my.ini
[mysqld]
datadir = D:/ProgramData/Data
เริ่มต้น MySQL
net start mysql
หากคุณไม่สามารถดำเนินการได้net start mysql
ให้ลองใช้แผงควบคุม Windows
เข้าสู่ระบบ MySQL และตรวจสอบทุกอย่างดี
เมื่อคุณเข้าสู่ MySQL ให้เรียกใช้สิ่งนี้
mysql> SHOW GLOBAL VARIABLES LIKE 'datadir';
อย่าลืมให้ไดเรกทอรีข้อมูลใหม่ของคุณมีสิทธิ์ใช้งานเต็มรูปแบบเหมือนกันสำหรับผู้ใช้บริการเครือข่ายและผู้ดูแลระบบที่ผู้ใช้เริ่มต้นใช้ข้อมูลไม่เช่นนั้นจะทำให้เกิดข้อผิดพลาด "เริ่มแล้วหยุด" อย่าลบ dir นี้จนกว่าคุณจะแน่ใจว่าใหม่ของคุณทำงาน
หากนี่ไม่ได้ผลนี่คือแผนย้อนกลับ:
net stop mysql
del "C:\ProgramData\MySQL\MySQL Server 5.6\my.ini"
net start mysql
การเพิ่มคำตอบปัจจุบันสำหรับเซิร์ฟเวอร์ MySQL 8.0 บน Windows 10 สำหรับวิธีการเปลี่ยนไดเรกทอรีฐานข้อมูลหลังจากการติดตั้ง (ฉันค้นหาบนอินเทอร์เน็ตและไม่พบวิธีแก้ปัญหาและเกือบจะบ้าไปแล้วดังนั้นฉันหวังว่านี่จะช่วยคนได้)
ขั้นตอนแรกเหมือนกับขั้นตอนอื่น ๆ ตามปกติสำหรับ MySQL Server 5.6 ความแตกต่างเพียงอย่างเดียวนั้นเป็นขั้นตอนที่ 3:
ไปที่บริการ (เช่นกด WIN + R พิมพ์services.msc
กด Enter) และหยุดMySQL80
บริการผ่านคลิกขวาและคลิก 'หยุด' (ระบุชื่อบริการระหว่างการติดตั้งดังนั้นชื่ออาจแตกต่างกันสำหรับคุณ)
ย้ายโฟลเดอร์ฐานข้อมูลไปยังทุกที่ที่คุณต้องการ C:\ProgramData\MySQL\MySQL Server 8.0\data
สถานที่แรกคือมักจะ ภายในC:\ProgramData\MySQL\MySQL Server 8.0\
โฟลเดอร์ควรมีmy.ini
ไฟล์ เปิดเพื่อแก้ไขด้วย Notepad ++ (หรือ Notepad อื่น ๆ ) และค้นหาบรรทัดที่พูดถึงตำแหน่งเก่าในบางรูปแบบ ควรจะมีสองครั้งของมัน (หนึ่งสำหรับdatadir
หนึ่งสำหรับsecure-file-priv
) เปลี่ยนชื่อทั้งสองเป็นตำแหน่งใหม่ที่สอดคล้องกัน (อาจจะเพียงพอที่จะเปลี่ยนชื่อชิ้นdatadir
ส่วน แต่ควรปลอดภัยกว่าขออภัย) เริ่มแรกพวกเขามักจะมีลักษณะเช่นนี้:
datadir=C:/ProgramData/MySQL/MySQL Server 8.0/Data
และ
secure-file-priv="C:/ProgramData/MySQL/MySQL Server 8.0/Uploads"
ดังนั้นหากตำแหน่งใหม่ควรE:/MySQL/MySQL Server 8.0/...
เปลี่ยนชื่อทั้งสองรายการดังนี้:
datadir=E:/MySQL/MySQL Server 8.0/Data
และ
secure-file-priv="E:/MySQL/MySQL Server 8.0/Uploads"
ตอนนี้หลังจากย้ายฐานข้อมูลและเปลี่ยนชื่อรายการในmy.ini
ไฟล์ก่อนที่คุณจะเริ่มบริการอีกครั้งให้เปิดตัวแก้ไขรีจิสทรี (เช่นกด WIN + R พิมพ์ "regedit" กด Enter) นำทางไปยังComputer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL80
(อีกครั้งMySQL80
คือ ชื่อบริการของบริการ MySQL ที่คุณเลือกระหว่างการติดตั้งและอาจแตกต่างจากMySQL80
) และคลิกขวาที่ImagePath
รายการและเลือกแก้ไข ควรมีสตริงที่แสดงคล้ายกับสิ่งนี้:
"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe" --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" MySQL80
นี่คือลิงก์ไปยังไฟล์ exe ที่แท้จริงที่ดำเนินการโดยบริการพร้อมพารามิเตอร์ config-file เพิ่มเติมนั่นคือmy.ini
ไฟล์ที่เราแก้ไขก่อนหน้านี้ ดังนั้นที่นี่แน่นอนเส้นทางไปยังไฟล์กำหนดค่าจำเป็นต้องได้รับการอัปเดตด้วยเนื่องจากมันถูกย้ายดังนั้นตัวอย่างนี้จะเปลี่ยนเป็น:
"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe" --defaults-file="E:\MySQL\MySQL Server 8.0\my.ini" MySQL80
โปรดทราบว่าแน่นอนต้องเปลี่ยนเส้นทางของไฟล์กำหนดค่าเท่านั้น
ตอนนี้สามารถเริ่มบริการได้อีกครั้ง! ไปที่บริการอีกครั้งและคลิกขวาที่MySQL80
บริการเพื่อเลือกตัวเลือก 'เริ่ม' อีกครั้งและควรเริ่มต้นใหม่โดยไม่มีปัญหา หากข้ามขั้นตอนที่ 3 การรีสตาร์ทมักจะไม่ทำงาน!