การเปลี่ยนไดเรกทอรีข้อมูลบนเซิร์ฟเวอร์ฐานข้อมูล MySQL


10

ฉันติดตั้งเซิร์ฟเวอร์ mysql 5.6.24 บน Windows Server 2012 R2 แล้ว

ฉันอิมพอร์ตไฟล์ดัมพ์และไฟล์ข้อมูลถูกเก็บไว้ C:\ProgramData\MySQL\MySQL Server 5.6\data

D:\ProgramData\Dataฉันต้องการที่จะเปลี่ยนไดเรกทอรีเช่น

คุณช่วยฉันได้ไหม

คำตอบ:


10
  1. เปิด Windows CLI ในฐานะผู้ดูแลระบบและปิดระบบ MySQL

    net stop mysql
  2. คัดลอกข้อมูลไปยัง D:\ProgramData\Data

    xcopy /s C:\ProgramData\MySQL\MySQL Server 5.6\data D:\ProgramData\Data
  3. สร้างหรือแก้ไข C:\ProgramData\MySQL\MySQL Server 5.6\my.ini

    เพิ่มลงใน my.ini

    [mysqld]
    datadir = D:/ProgramData/Data
  4. เริ่มต้น MySQL

    net start mysql

    หากคุณไม่สามารถดำเนินการได้net start mysqlให้ลองใช้แผงควบคุม Windows

  5. เข้าสู่ระบบ 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

0

การเพิ่มคำตอบปัจจุบันสำหรับเซิร์ฟเวอร์ MySQL 8.0 บน Windows 10 สำหรับวิธีการเปลี่ยนไดเรกทอรีฐานข้อมูลหลังจากการติดตั้ง (ฉันค้นหาบนอินเทอร์เน็ตและไม่พบวิธีแก้ปัญหาและเกือบจะบ้าไปแล้วดังนั้นฉันหวังว่านี่จะช่วยคนได้)

ขั้นตอนแรกเหมือนกับขั้นตอนอื่น ๆ ตามปกติสำหรับ MySQL Server 5.6 ความแตกต่างเพียงอย่างเดียวนั้นเป็นขั้นตอนที่ 3:

  1. ไปที่บริการ (เช่นกด WIN + R พิมพ์services.mscกด Enter) และหยุดMySQL80บริการผ่านคลิกขวาและคลิก 'หยุด' (ระบุชื่อบริการระหว่างการติดตั้งดังนั้นชื่ออาจแตกต่างกันสำหรับคุณ)

  2. ย้ายโฟลเดอร์ฐานข้อมูลไปยังทุกที่ที่คุณต้องการ 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"
  3. ตอนนี้หลังจากย้ายฐานข้อมูลและเปลี่ยนชื่อรายการใน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

    โปรดทราบว่าแน่นอนต้องเปลี่ยนเส้นทางของไฟล์กำหนดค่าเท่านั้น

  4. ตอนนี้สามารถเริ่มบริการได้อีกครั้ง! ไปที่บริการอีกครั้งและคลิกขวาที่MySQL80บริการเพื่อเลือกตัวเลือก 'เริ่ม' อีกครั้งและควรเริ่มต้นใหม่โดยไม่มีปัญหา หากข้ามขั้นตอนที่ 3 การรีสตาร์ทมักจะไม่ทำงาน!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.