คอมพิวเตอร์ หน้าต่าง อินเทอร์เน็ต

เข้าสู่ระบบบรรทัดคำสั่ง mysql การติดตั้ง MySQL บน Windows โดยอัตโนมัติ สิ่งที่คุณต้องศึกษา

สวัสดีเพื่อนร่วมงาน :)

ใช่เพื่อนร่วมงานเพราะสำหรับมนุษย์ธรรมดาบรรทัดคำสั่ง MySQL (หรือ MySQL Shell ตามที่นักพัฒนาชอบเรียก) รวมถึงการทำงานกับ MySQL ในคอนโซลไม่น่าจะมีประโยชน์

เพื่อให้หัวข้อนี้น่าสนใจ อย่างน้อยที่สุดคุณจะต้องเป็นผู้ดูแลระบบมือใหม่ที่ไม่ได้ใช้ phpMyAdmin และอินเทอร์เฟซอื่น ๆ ตามหลักการ

ใช้งานคอนโซลบนระบบปฏิบัติการที่แตกต่างกัน

เนื่องจากฉันจะสาธิตวิธีใช้บรรทัดคำสั่ง MySQL ในคอนโซลเซิร์ฟเวอร์ จึงเป็นความคิดที่ดีที่จะเริ่มจากบรรทัดคำสั่งนี้ก่อน

การกระทำนั้นเรียบง่ายและคุ้นเคยสำหรับหลาย ๆ คนซึ่งความรู้เกี่ยวกับ "ปุ่มลัด" ก็เพียงพอแล้ว

การเปิดตัวคอนโซลบน Windows:

  • Win+R เพื่อเปิดพรอมต์คำสั่ง Windows พร้อมสิทธิ์ผู้ดูแลระบบ
  • ป้อนคำสั่ง คำสั่ง
  • คลิก เข้าบนแป้นพิมพ์

การเปิดตัวคอนโซลในลีนุกซ์รุ่น (เทอร์มินัล): ใน Ubuntu ที่ฉันร่วมงานด้วย การรวมคีย์ของระบบก็เพียงพอแล้ว Ctrl+Alt+T. ฉันไม่สามารถพูดอะไรเกี่ยวกับระบบปฏิบัติการที่ใช้ Linux อื่น ๆ ได้

เปิดตัวคอนโซลบน MacOS: ฉันไม่ได้ทำด้วยตัวเองเพราะว่า... ฉันยังไม่มี Mac และฉันไม่น่าจะซื้อเครื่องนั้นเพราะฉันไม่ต้องการมัน แต่เท่าที่ฉันสามารถรู้ได้ ไม่มี "ปุ่มลัด" สำหรับเรียกเทอร์มินัลในระบบปฏิบัติการนี้ ดังนั้นหากคุณเป็นผู้ใช้ผลิตภัณฑ์ Apple ให้เปิดคอนโซลผ่านอินเทอร์เฟซระบบปฏิบัติการ โชคดีที่มีคู่มือมากมายบนอินเทอร์เน็ต

เป็นเรื่องน่าอายเล็กน้อยที่จะเผยแพร่ข้อมูลดังกล่าว ในกรณีที่ผู้ดูแลระบบมืออาชีพที่มีประสบการณ์มายาวนานบังเอิญไปพบกับบทความนี้ เนื่องจาก เขาจะคิดว่า:“ ผู้เขียนถือว่าผู้อ่านของเขาเป็นโปรแกรมเมอร์ แต่ในขณะเดียวกันเขาก็สอนวิธีเปิดคอนโซล... พวกโรคจิตบางประเภท :-)”

ใช่ ค่อนข้างสมเหตุสมผล :) แต่ฉันแค่คำนึงถึงสถานการณ์ที่ผู้เริ่มต้นสามารถมาที่นี่ได้พร้อมกับนักพัฒนามืออาชีพ นั่นเป็นเหตุผลที่ฉันพยายามทำให้ข้อมูลมีความสมบูรณ์และเข้าถึงได้สำหรับผู้ใช้ทุกประเภท ดังที่ได้กล่าวไปแล้ว

คำสั่งคอนโซล MySQL พื้นฐาน

ก่อนอื่น เราต้องเข้าถึงบรรทัดคำสั่ง MySQL ในคอนโซล ในการดำเนินการนี้ ให้เปิดคอนโซลเซิร์ฟเวอร์ และหากคุณติดตั้ง MySQL ทั่วโลกเป็นบริการ จากนั้นเพื่อ "ตรวจสอบการเชื่อมต่อ" เราจะเขียนดังต่อไปนี้:

MySql-V

คำสั่งคอนโซล mysqlช่วยให้เราสามารถเรียกใช้ยูทิลิตี้ชื่อเดียวกันซึ่งเป็นบรรทัดคำสั่ง MySQL

ซึ่งจะช่วยให้เราค้นหาเวอร์ชันของ MySQL ที่ติดตั้งบนคอมพิวเตอร์และตรวจสอบให้แน่ใจว่าได้รับการติดตั้งเป็นบริการเลย หากเป็นกรณีนี้ คุณจะเห็นข้อความคล้ายข้อความต่อไปนี้ในคอนโซล:

ใช่ ฉันไม่ใช่ "คนเขียนโค้ดบ้า" เพราะฉันใช้ Windows :) แต่นั่นไม่ใช่ประเด็น บนระบบ Unix ขั้นตอนจะเหมือนกัน

หากจู่ๆ MySQL ไม่ได้ติดตั้งทั่วโลกบนคอมพิวเตอร์ของคุณหรือคุณจำเป็นต้องทำงานกับ MySQL หลายเวอร์ชันซึ่งมีเพียงไดเร็กทอรีที่มีไฟล์และไลบรารี MySQL เท่านั้น การเปิดใช้งาน MySQL ผ่านคอนโซลจะมีลักษณะเช่นนี้

ในคอนโซล ไปที่ไดเร็กทอรีที่มีไฟล์ปฏิบัติการ MySQL (บน Windows อย่างน้อยก็คือ mysql.exe) โดยใช้คำสั่งต่อไปนี้:

ซีดี C:\OpenServer\modules\database\MySQL-5.7-x64\bin

โดยปกติแล้ว เส้นทางสู่การกระจายของคุณอาจแตกต่างกัน ตามตัวอย่าง ฉันตัดสินใจใช้งาน MySQL เวอร์ชันใดเวอร์ชันหนึ่งที่มาพร้อมกับ OpenServer

และเราเปิดตัว MySQL โดยตรวจสอบเวอร์ชันของมันไปพร้อมกัน:

Mysql.exe-V

ด้วยเหตุนี้ ข้อความที่คล้ายกับกรณีแรกจึงควรปรากฏในคอนโซล mysql เวอร์ชัน 14.14 แจกจ่าย 5.7.16 สำหรับ Win64 (x86_64).

เพียงเท่านี้ เราได้จัดการการเปิดใช้งาน MySQL จากบรรทัดคำสั่งผ่านคอนโซลเซิร์ฟเวอร์แล้ว ตอนนี้เราจะเชื่อมต่อโดยตรงกับเซิร์ฟเวอร์ MySQL

กำลังเชื่อมต่อกับเซิร์ฟเวอร์ MySQL ในคอนโซล

เซิร์ฟเวอร์ MySQL อาจไม่จำเป็นต้องอยู่บนเครื่องเดียวกับที่คุณพยายามเข้าถึงในคอนโซล ดังนั้นเพื่อให้สามารถเชื่อมต่อกับเซิร์ฟเวอร์ MySQL ระยะไกลผ่านคอนโซลได้ ยูทิลิตี้ mysql จึงมีพารามิเตอร์มากมายที่คุณสามารถระบุการตั้งค่าที่จำเป็นได้

ในการเปิดใช้บรรทัดคำสั่ง MySQL ในคอนโซล เราเพียงแค่ต้องเขียนสิ่งต่อไปนี้ในคอนโซลเซิร์ฟเวอร์:

อย่างไรก็ตาม ในกรณีนี้ คุณจะได้รับข้อผิดพลาดต่อไปนี้: ข้อผิดพลาด 1045 (28000): การเข้าถึงถูกปฏิเสธสำหรับผู้ใช้ 'ODBC'@'localhost' (ใช้รหัสผ่าน: NO). ข้อความแสดงข้อผิดพลาดจะปรากฏบน Windows ของฉันดังนี้ หากคุณใช้ Linux แทนที่จะเป็น ODBC จะเป็นชื่อผู้ใช้ระบบของคุณที่คุณดำเนินการในระบบ

ทั้งหมดนี้เป็นเพราะโดยค่าเริ่มต้น เมื่อเชื่อมต่อกับเซิร์ฟเวอร์ MySQL คอนโซลจะใช้ผู้ใช้ ODBC บน Windows โดยไม่ต้องใช้รหัสผ่าน และผู้ใช้ระบบบน Linux ด้วยรหัสผ่านเดียวกัน โฮสต์เริ่มต้นคือ localhost เช่น ผู้ใช้นี้สามารถเชื่อมต่อจากเครื่องท้องถิ่นเท่านั้น

ดังนั้น คุณมีสองทางเลือก: ใช้ผู้ใช้รายอื่นเพื่อเข้าสู่บรรทัดคำสั่ง MySQL หรือสร้างผู้ใช้ MySQL ด้วยบัญชีที่ต้องการ แต่สำหรับวิธีที่สองเรายังทำไม่ได้หากไม่มีวิธีแรก :) ดังนั้นก่อนอื่นเราเชื่อมต่อกับเซิร์ฟเวอร์ MySQL ภายใต้ผู้ใช้มาตรฐาน รากซึ่งถูกสร้างขึ้นเมื่อติดตั้ง MySQL บนคอมพิวเตอร์และอนุญาตให้เข้าถึงจาก localhost ตามค่าเริ่มต้น:

Mysql -u รูท -p

เมื่อได้รับแจ้งให้ป้อนรหัสผ่าน เพียงกด Enter (แน่นอนว่าหากคุณไม่ได้ป้อนเมื่อติดตั้ง MySQL) จากนั้นคุณจะเชื่อมต่อกับเซิร์ฟเวอร์ MySQL กำหนด ID การเชื่อมต่อ และให้สิทธิ์ในการเข้าถึงบรรทัดคำสั่ง MySQL

หากคุณต้องการเชื่อมต่อกับเซิร์ฟเวอร์ MySQL ที่มีชื่อโฮสต์หรือ IP เฉพาะ หรือต้องการเข้าสู่ระบบในฐานะผู้ใช้อื่น ให้ใช้รูปแบบคำสั่งต่อไปนี้:

Mysql -u user_name -p user_password -h MySQL_server_host_or_IP

แทนที่จะใช้อักขระซีริลลิกที่มีขีดล่าง คุณต้องป้อนข้อมูลเป็นอักขระละติน หากต้องการคุณสามารถเขียนคำสั่งนี้ในรูปแบบที่แตกต่างออกไปเล็กน้อย:

Mysql --user=user_name --password=user_password --host=host_or_IP_of_MySQL_server

หากคุณไม่ต้องการให้รหัสผ่านการเชื่อมต่อ MySQL ปรากฏในคอนโซลด้วยเหตุผลบางประการ (ซึ่งถูกต้องแล้ว) คุณสามารถใช้คำสั่งต่อไปนี้:

Mysql -u ชื่อผู้ใช้ -h MySQL_server_host_or_IP -p

เนื่องจากไม่ได้ระบุรหัสผ่านอย่างชัดเจน คุณจะได้รับแจ้งให้ป้อนรหัสผ่านในขั้นตอนถัดไป นอกจากนี้ อักขระที่คุณป้อนจะไม่แสดงแม้จะอยู่ในรูปของเครื่องหมายดอกจัน (ไวด์การ์ด) แต่จะมีเพียงบรรทัดว่าง

นอกเหนือจากการตั้งค่าการเชื่อมต่อที่ระบุแล้ว ยังสามารถใช้พารามิเตอร์ต่อไปนี้ได้ โดยค่าต่างๆ จะถูกระบุในลักษณะที่คล้ายกับที่ระบุไว้ข้างต้น:

  1. --port หรือ -P - เพื่อระบุพอร์ตสำหรับเชื่อมต่อกับเซิร์ฟเวอร์ MySQL
  2. —โปรโตคอล — โปรโตคอลที่จะทำการเชื่อมต่อ (ตัวเลือกที่เป็นไปได้: TCP สำหรับ Windows และ Linux, SOCKET สำหรับ Linux, PIPE และ MEMORY สำหรับ Windows)
  3. --socket หรือ -S - พารามิเตอร์นี้มีประโยชน์หากคุณต้องการเชื่อมต่อผ่านซ็อกเก็ตดังนั้นค่าของพารามิเตอร์จะเป็นซ็อกเก็ต
  4. --pipe หรือ -W - จำเป็นต้องใช้พารามิเตอร์หากคุณต้องการใช้ชื่อ "ไปป์ไลน์" หรือ "ไปป์" สำหรับการเชื่อมต่อ
  5. --shared-memory-base-name - พารามิเตอร์นี้จะมีประโยชน์สำหรับการเชื่อมต่อ MEMORY ผ่านหน่วยความจำที่แชร์บน Windows

เป็นที่ชัดเจนว่ารายการพารามิเตอร์ทั้งหมดสำหรับการเชื่อมต่อกับเซิร์ฟเวอร์ MySQL ไม่ได้จำกัดอยู่เพียงเท่านี้ ในความเป็นจริงมีอีกมากมาย

หากด้วยเหตุผลบางประการตัวเลือกมาตรฐานที่ระบุโฮสต์ผู้ใช้และรหัสผ่านไม่เหมาะกับคุณเพื่อค้นหารายการพารามิเตอร์การเชื่อมต่อทั้งหมดข้อมูลต่อไปนี้จะเป็นประโยชน์สำหรับคุณ - https://dev.mysql.com/doc/ refman/5.7/en/connecting.html

วิธีสร้างฐานข้อมูลในคอนโซล MySQL

หลังจากที่เราเชื่อมต่อกับเซิร์ฟเวอร์ MySQL และเปิดใช้บรรทัดคำสั่ง MySQL แล้ว ก็ถึงเวลาเริ่มต้นวงจรชีวิตของฐานข้อมูลไซต์ของเรา ซึ่งเริ่มต้นด้วยการสร้างฐานข้อมูล ในการสร้างฐานข้อมูล MySQL ผ่านทางบรรทัดคำสั่ง คุณต้องป้อนคำสั่งต่อไปนี้:

สร้างฐานข้อมูลdatabase_name;

การดำเนินการเดียวกันนี้สามารถทำได้โดยใช้ยูทิลิตี้ MySQL พิเศษ mysqladmin. มันทำงานแยกจากบรรทัดคำสั่ง MySQL เช่น หากต้องการใช้งาน คุณจะต้องออกหรือเปิดคอนโซลเซิร์ฟเวอร์ใหม่

จากนั้นเรียกใช้คำสั่งต่อไปนี้:

Mysqladmin สร้างฐานข้อมูลชื่อ;

อย่างไรก็ตาม การใช้ยูทิลิตี้ mysqladmin คุณไม่เพียงสามารถสร้างและลบฐานข้อมูลโดยไม่ต้องเข้าสู่คอนโซล MySQL เท่านั้น แต่ยังใช้งานการกำหนดค่าเซิร์ฟเวอร์ กระบวนการ MySQL จัดการการจำลองแบบ เซิร์ฟเวอร์ ping และทำสิ่งที่น่าสนใจอื่น ๆ อีกมากมาย

วิธีสร้างผู้ใช้ MySQL บนบรรทัดคำสั่ง

ไม่บ่อยนัก แต่บางครั้งคุณจำเป็นต้องสร้างผู้ใช้ MySQL ใหม่ นอกจากนี้ในโหมดคอนโซล

บนบรรทัดคำสั่ง MySQL ทำได้ดังนี้:

สร้างผู้ใช้ "user_name"@"host_or_machine_IP" ระบุโดย "user_password";

ผู้ใช้ได้ถูกสร้างขึ้นแล้ว พารามิเตอร์ host_or_IP_machineหมายความว่าเมื่อสร้างผู้ใช้คุณจะต้องระบุ IP ที่เขาสามารถเชื่อมต่อกับเซิร์ฟเวอร์หรือชื่อโฮสต์ (ชื่อโดเมนของเครื่องที่ทำงานบนเครือข่ายเหมาะสม)

อย่างไรก็ตาม เมื่อระบุโฮสต์เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ MySQL คุณสามารถใช้สัญลักษณ์เปอร์เซ็นต์ - % ซึ่งหมายความว่าผู้ใช้ที่สร้างขึ้นสามารถเชื่อมต่อกับเซิร์ฟเวอร์ MySQL จากที่อยู่ IP หรือโฮสต์ใดก็ได้

ควรคำนึงว่าในกรณีนี้ localhost จะไม่รวมอยู่ในรายการที่อยู่ที่ระบุโดยใช้ % เพราะ localhost หมายถึงการเชื่อมต่อผ่านซ็อกเก็ต UNIX แทน TCP/IP มาตรฐาน เหล่านั้น. หากผู้ใช้ MySQL ที่สร้างขึ้นจะเชื่อมต่อกับเซิร์ฟเวอร์ที่ไม่ได้ใช้ซ็อกเก็ต แต่ใช้โปรโตคอลอื่นที่ระบุเมื่อเชื่อมต่อกับเซิร์ฟเวอร์ MySQL ในคอนโซล เขาจะต้องสร้างบัญชีผู้ใช้สองบัญชี:

สร้างผู้ใช้ "ชื่อผู้ใช้"@"%" ระบุโดย "รหัสผ่าน"; สร้างผู้ใช้ "ชื่อผู้ใช้"@"localhost" ระบุโดย "รหัสผ่าน";

เราได้ทราบวิธีสร้างผู้ใช้ MySQL ในคอนโซลแล้ว ตอนนี้เรามาตั้งค่าสิทธิ์ผู้ใช้เพื่อดำเนินการใด ๆ กับฐานข้อมูลที่เราสร้างขึ้นใหม่ด้วยคำสั่งต่อไปนี้:

ให้สิทธิ์ทั้งหมดบนdatabase_name.* เป็น "user_name"@"host_or_machine_IP";

ตัวเลือก ทั้งหมดตามที่คุณเข้าใจ เพียงระบุว่าผู้ใช้ได้รับอนุญาตให้ดำเนินการใดๆ กับฐานข้อมูลเฉพาะ รายการสิทธิ์ทั้งหมดที่สามารถมอบให้กับผู้ใช้ได้โดยใช้คำสั่ง ยินยอมสามารถพบได้ที่นี่ (แม้ว่าคำอธิบายของพารามิเตอร์จะเป็นภาษาอังกฤษ) - https://dev.mysql.com/doc/refman/5.7/en/grant.html#grant-privileges

อย่างไรก็ตามคุณสามารถใช้พารามิเตอร์สิทธิพิเศษหลายตัวโดยระบุเมื่อเรียกใช้คำสั่งโดยคั่นด้วยเครื่องหมายจุลภาค

หากคุณต้องการสร้าง superuser เช่น มีสิทธิ์ระดับโลกในการดำเนินการต่าง ๆ กับฐานข้อมูลทั้งหมดบนเซิร์ฟเวอร์ จากนั้นใช้การเรียกคำสั่งต่อไปนี้:

ให้สิทธิ์ทั้งหมด *.* เป็น "user_name"@"host_or_machine_IP";

อย่างไรก็ตาม เป็นความคิดที่ดีที่จะล้างแคชเซิร์ฟเวอร์ MySQL หลังจากตั้งค่าสิทธิ์แล้ว หากคุณเปลี่ยนแปลงอย่าลืมทำสิ่งนี้ด้วยการเรียกคำสั่งต่อไปนี้:

สิทธิ์ล้าง;

และหากคุณต้องการเปลี่ยนสิทธิ์ของผู้ใช้ ให้ใช้คำสั่งต่อไปนี้เพื่อรีเซ็ตสิทธิ์ทั้งหมดก่อน:

เพิกถอนสิทธิ์ทั้งหมดบน *.* จาก "user_name"@"host_or_machine_IP";

แล้วติดตั้งอันที่เขาต้องการใช้ ยินยอมตามที่อธิบายไว้ก่อนหน้านี้

หากในอนาคตคุณจำเป็นต้องเปลี่ยนรหัสผ่านผู้ใช้ MySQL เพียงเรียกใช้คำสั่งต่อไปนี้ใน MySQL Shell:

ตั้งรหัสผ่านสำหรับ "user_name"@"host_or_machine_IP" = PASSWORD("new_password"); สิทธิ์ล้าง;

การรีเซ็ตแคชสิทธิพิเศษของเซิร์ฟเวอร์ MySQL เป็นสิ่งจำเป็นเพื่อจุดประสงค์เดียวกับเมื่อเปลี่ยนสิทธิ์ - หากไม่มีการดำเนินการนี้ การเปลี่ยนรหัสผ่านผู้ใช้ MySQL อาจไม่นับ ดังนั้นอย่าขี้เกียจที่จะใช้มัน :)

อย่างไรก็ตาม อินเทอร์เน็ตเต็มไปด้วยตัวอย่างการใช้คำสั่งต่อไปนี้เพื่อรีเซ็ตรหัสผ่าน MySQL ของผู้ใช้:

อัปเดตรหัสผ่าน mysql.user SET = PASSWORD ("รหัสผ่าน") WHERE User = "ชื่อผู้ใช้";

แต่ตัวเลือกนี้ใช้งานไม่ได้สำหรับฉันใน MySQL 5.7 โดยทำให้เกิดข้อผิดพลาด ข้อผิดพลาด 1054 (42S22): คอลัมน์ที่ไม่รู้จัก 'รหัสผ่าน' ใน 'รายการฟิลด์'. สาเหตุเกิดจากการไม่มีฟิลด์รหัสผ่านในตาราง mysql.user

ซึ่งเราสามารถสรุปได้ว่าตัวเลือกนี้ใช้ได้กับ MySQL เวอร์ชันเก่าเท่านั้นซึ่งมีฟิลด์นี้อยู่ในตารางผู้ใช้ ดังนั้นเพื่อให้แน่ใจว่าใช้ตัวเลือกแรกของฉัน เว้นแต่ว่าคุณถูกบังคับให้ทำงานกับซอฟต์แวร์ต่อต้านไวรัสโดยไม่มีความสามารถในการอัปเดตเวอร์ชัน :)

นี่เป็นการเสร็จสิ้นการสร้างผู้ใช้ MySQL ใหม่และตรวจสอบการดำเนินการเกี่ยวกับสิทธิ์และรหัสผ่าน เดินหน้าต่อไป

การเลือกฐานข้อมูลเมื่อทำงานกับ MySQL ผ่านทางบรรทัดคำสั่ง

ตอนนี้หลังจากสร้างผู้ใช้ใน MySQL Shell และกำหนดสิทธิ์ให้เขาทำงานกับฐานข้อมูลแล้ว เราจำเป็นต้องเลือกฐานข้อมูลนี้เพื่อให้เราสามารถทำงานกับฐานข้อมูลเองและข้อมูลที่เก็บไว้ในนั้นได้

เมื่อต้องการทำเช่นนี้ ให้ใช้คำสั่งต่อไปนี้ในคอนโซล MySQL:

ใช้ฐานข้อมูล_ชื่อ;

หากทุกอย่างเป็นไปด้วยดี ข้อความจะแสดงบนคอนโซล ฐานข้อมูลมีการเปลี่ยนแปลงซึ่งจะส่งสัญญาณว่าเราลงชื่อเข้าใช้ฐานข้อมูล MySQL ผ่านทางคอนโซล อย่างไรก็ตามเมื่อเชื่อมต่อกับเซิร์ฟเวอร์ MySQL คุณสามารถระบุฐานข้อมูลที่คุณต้องการใช้งานได้ในตอนแรก ในการดำเนินการนี้ คุณต้องป้อนคำสั่งต่อไปนี้ในคอนโซลเซิร์ฟเวอร์:

Mysql --user=user_name --password=user_password --host=MySQL_server_host_or_IP --database=database_name

หรือสิ่งเดียวกันเพียงขอรหัสผ่านผู้ใช้ MySQL เท่านั้น:

Mysql -u user_name -h host_or_IP_MySQL_server_database_name -p

นั่นคือทั้งหมดที่ ฉันคิดว่าตอนนี้คุณจะไม่มีปัญหาในการเชื่อมต่อกับฐานข้อมูล MySQL ผ่านคอนโซล :)

การทำงานกับตาราง MySQL ผ่านคอนโซล MySQL

ดังนั้นเราจึงสร้างฐานข้อมูล MySQL ผ่านคอนโซล ตอนนี้ คงจะดีไม่น้อยหากได้เรียนรู้วิธีใช้งานในกรณีที่บรรทัดคำสั่ง MySQL เป็นวิธีเดียวในการเข้าถึงข้อมูลที่เก็บไว้บนเซิร์ฟเวอร์ (เช่นในกรณีของฉันซึ่งฉันได้พูดถึงในตอนต้นของ บทความ).

ดังที่คุณทราบมันประกอบด้วยตารางซึ่งภายในข้อมูลถูกเก็บไว้แล้วในรูปแบบของบันทึกที่มีหลายฟิลด์ ดังนั้น ตามลำดับชั้นของการจัดวางข้อมูล ก่อนอื่นเราจะเรียนรู้วิธีการดำเนินการ CRUD ทั่วไปกับตาราง

การดำเนินการ CRUD หากมีใครไม่ทราบคือการดำเนินการสำหรับการสร้าง อ่าน อัปเดต และลบข้อมูลจากภาษาอังกฤษ “สร้าง อ่าน อัปเดต ลบ” (คุณอาจต้องใช้สิ่งนี้ระหว่างการสัมภาษณ์)

ฉันขอเตือนคุณว่าในการดำเนินการกับตารางคุณต้องเชื่อมต่อกับฐานข้อมูล MySQL โดยใช้คำสั่งก่อน ใช้.

ดังนั้น สิ่งแรกในวาระการประชุมของเราคือคำสั่งให้สร้างตาราง MySQL ในฐานข้อมูลผ่านทางบรรทัดคำสั่ง ซึ่งมีลักษณะดังนี้:

สร้างตาราง table_name (field_name_1 field_type_1, field_name_2 field_type_2(field_size_2), INDEX(field_name_1), ...);

ตามที่คุณเข้าใจ สามารถมีฟิลด์ได้มากเท่าที่คุณต้องการ ประเภทของฟิลด์อาจแตกต่างกัน และการมีอยู่ของดัชนีและคีย์ก็เป็นทางเลือก

อย่างไรก็ตามหากคุณต้องการคัดลอกตารางไปยังฐานข้อมูลอื่นหรือเพียงแค่สร้างสำเนาในฐานข้อมูลปัจจุบันคำสั่งต่อไปนี้จะช่วยคุณ:

สร้างตาราง new_table_name เช่น old_table_name; ใส่ new_table_name SELECT * จาก old_table_name;

คำสั่งเหล่านี้ช่วยให้คุณสามารถคัดลอกโครงสร้างตารางและข้อมูลพร้อมกับดัชนีและทริกเกอร์ของตารางได้ หากคุณต้องการข้อมูลและโครงสร้าง (ชื่อของฟิลด์และประเภทข้อมูล) คุณสามารถเรียกใช้คำสั่งเดียวได้:

สร้างตาราง new_table_name AS SELECT * จาก old_table_name;

การดำเนินการถัดไปจากบล็อก CRUD กำลังอ่าน ในกรณีของตาราง การอ่านจะแสดงโครงสร้าง เมื่อต้องการทำเช่นนี้ มีคำสั่งสี่คำสั่งต่อไปนี้:

แสดงคอลัมน์ทั้งหมดจาก table_name; อธิบาย table_name; อธิบาย table_name; แสดงสร้างตาราง table_name;

ส่วนแรกจะแสดงข้อมูลเกี่ยวกับฟิลด์ของตารางฐานข้อมูลในรูปแบบตารางไปยังคอนโซล MySQL โดยระบุชื่อฟิลด์ ประเภทข้อมูล การมีอยู่ของคีย์ ค่าเริ่มต้น ฯลฯ เมื่อใช้คำสำคัญ เต็มคุณสามารถรับข้อมูลเพิ่มเติม รวมถึงสิทธิพิเศษสำหรับแต่ละฟิลด์สำหรับผู้ใช้ปัจจุบัน ความคิดเห็นสำหรับผู้ใช้แต่ละคน และค่าการเข้ารหัส

คำสั่งที่สองและสามเป็นเพียงรูปแบบย่อของคำสั่งแรกโดยไม่มีข้อมูลเพิ่มเติม ทำไมถึงต้องสร้างมันเพิ่มล่ะ นึกไม่ถึงเลย... มันจะมีเรื่องให้ถามตอนสัมภาษณ์งานหรือเปล่า? 🙂

คำสั่งที่สี่ นอกเหนือจากชื่อ ประเภทฟิลด์ และค่าเริ่มต้น ยังช่วยให้คุณรับค่าของคีย์ตาราง เอ็นจิ้นตาราง (InnoDB, MyISAM) การเข้ารหัส ฯลฯ

การดำเนินการอัพเดตในกรณีของตารางแสดงถึงการเปลี่ยนแปลงโครงสร้างเช่น การดำเนินการต่างๆ กับเขตข้อมูลตาราง MySQL:

แก้ไขตาราง table_name DROP COLUMN field_name; แก้ไขตาราง table_name เพิ่มคอลัมน์ field_name VARCHAR (20); แก้ไขตาราง table_name เปลี่ยน old_field_name new_field_name VARCHAR (50); แก้ไขตาราง table_name MODIFY field_name VARCHAR (3);

คำสั่งแรกช่วยให้คุณสามารถลบฟิลด์ตารางเฉพาะได้ คำสั่งที่สองให้คุณเพิ่มได้ คำสั่งที่สามให้คุณเปลี่ยนชื่อฟิลด์และเปลี่ยนประเภทของข้อมูลที่เก็บไว้ในนั้นไปพร้อม ๆ กัน และคำสั่งที่สี่ให้คุณเปลี่ยนเฉพาะประเภทข้อมูล .

เช่นเดียวกันนี้สามารถทำได้กับดัชนีตารางโดยใช้คำสั่งที่คล้ายกันส่วนใหญ่:

แก้ไขตาราง table_name เพิ่มดัชนีที่ไม่ซ้ำกัน index_name (field_name_1, ... ); แก้ไขตาราง table_name เปลี่ยนชื่อ INDEX เก่า index_name ไปเป็น index_name ใหม่; แก้ไขตาราง table_name DROP INDEX index_name;

คำสั่งต่อไปนี้ช่วยให้คุณสามารถเพิ่ม เปลี่ยนชื่อ และลบดัชนีออกจากตาราง MySQL ผ่านทางบรรทัดคำสั่ง หากต้องการเพิ่มและลบดัชนี มีอีกทางเลือกหนึ่งสำหรับการใช้คำสั่งอิสระแทนที่จะดำเนินการผ่าน แก้ไขตาราง. ดังนั้นหากคุณต้องการคุณสามารถใช้มันได้:

สร้างดัชนีที่ไม่ซ้ำกัน index_name (field_name_1, ...) บน table_name; วางดัชนี index_name บน table_name;

คำสั่งที่กำหนดจะเทียบเท่ากับคำสั่งแรกและสุดท้ายจากบล็อกก่อนหน้า น่าเสียดายที่ไม่มีคำสั่งแยกต่างหากในการเปลี่ยนชื่อดัชนี และหากต้องการเปลี่ยนประเภทดัชนี น่าเสียดายที่ MySQL ไม่มีทางเลย ทางออกเดียวคือการลบดัชนีและสร้างใหม่อีกครั้งด้วยประเภทที่ต้องการ

ในที่สุดเราก็มาถึงการดำเนินการสุดท้ายจากบล็อก CRUD - การลบ การลบตาราง MySQL ออกจากฐานข้อมูลนั้นทำได้ง่ายมาก เพียงรันคำสั่งต่อไปนี้ในคอนโซล MySQL:

วางตาราง table_name;

บางครั้งในสถานการณ์จริงเกิดขึ้นซึ่งทำให้ไม่สามารถลบตารางหรือเปลี่ยนโครงสร้างของตารางได้ ตามกฎแล้ว นี่เป็นเพราะการใช้คีย์ต่างประเทศในฐานข้อมูลเพื่อเชื่อมโยงตารางเข้าด้วยกัน โดยส่วนตัวแล้วฉันพบกับสถานการณ์นี้มากกว่าหนึ่งครั้งดังที่ได้กล่าวไว้ในตอนต้นของบทความ

ดังนั้นหากเมื่อลบหรืออัปเดตโครงสร้างตารางหรือข้อมูล MySQL จะส่งคืนข้อความแสดงข้อผิดพลาดแก่คุณ ไม่สามารถลบหรืออัปเดตแถวพาเรนต์ได้: ข้อจำกัดของคีย์นอกล้มเหลวจากนั้นข้อมูลต่อไปนี้จะเป็นประโยชน์สำหรับคุณ

เพื่อดำเนินการตามแผนของเรา เราจำเป็นต้องปิดการใช้งานการตรวจสอบการมีอยู่ของคีย์ต่างประเทศชั่วคราว ดำเนินการที่จำเป็น จากนั้นเปิดใช้งานการตรวจสอบอีกครั้ง เนื่องจาก มีความจำเป็นจริงๆ และช่วยให้คุณสามารถป้องกันการละเมิดความสมบูรณ์ของข้อมูลได้ในกรณีส่วนใหญ่

ตามความเป็นจริง จำเป็นต้องใช้คีย์ต่างประเทศของ MySQL เพื่อจุดประสงค์นี้

ดังนั้น หากต้องการลบข้อมูลที่ถูกรบกวนด้วยคีย์ต่างประเทศ คุณต้องทำตามขั้นตอนต่อไปนี้ในคอนโซล MySQL:

ตั้งค่า FOREIGN_KEY_CHECKS=0; #required_mysql_command ตั้งค่า FOREIGN_KEY_CHECKS=1;

อย่างไรก็ตาม หากคุณต้องการลบคีย์ต่างประเทศ ขั้นตอนจะเหมือนกับการลบดัชนี:

แก้ไขตาราง table_name DROP คีย์ต่างประเทศ Foreign_key_name;

หากต้องการค้นหาชื่อของคีย์ต่างประเทศ MySQL ของตาราง ให้ใช้คำสั่งคอนโซล MySQL ที่คุ้นเคยอยู่แล้ว แสดงสร้างตาราง.

การทำงานกับข้อมูลตาราง MySQL ผ่านทางบรรทัดคำสั่ง

สำหรับตาราง CRUD เราพิจารณาการดำเนินงานในคอนโซล MySQL เพื่อภาพรวมที่สมบูรณ์ เอกสารสรุปนี้ขาดเพียงคำสั่งสำหรับการทำงานกับข้อมูลที่จัดเก็บไว้ในตารางฐานข้อมูลเท่านั้น ฉันคิดว่าหลายคนรู้จักคำสั่งเหล่านี้และเคยใช้ในทางปฏิบัติ แต่ฉันจะยังคงเตือนคุณอีกครั้ง

การดำเนินการ CRUD สำหรับการทำงานกับข้อมูลตาราง MySQL จะมีลักษณะดังนี้:

แทรกลงใน table_name (field1, field2, ...) ค่า (ค่า field_1, ค่า field_2, ...); เลือก field1, field2, ... จาก table_name; อัปเดต table_name SET field1 = ค่า field_1, field2 = ค่า field_2; ลบออกจาก table_name โดยที่ field1 = ค่า field_1;

คำสั่งข้างต้นสอดคล้องกับการดำเนินการสร้าง อ่าน อัปเดต และลบข้อมูลจากตารางฐานข้อมูล MySQL เมื่อใช้ SELECT และ UPDATE ยังเป็นไปได้ที่จะใช้ WHERE clause ที่มีคุณสมบัติเหมาะสม ซึ่งสามารถใช้เพื่อระบุการเลือกข้อมูลในลักษณะเดียวกับที่อธิบายไว้เมื่อใช้ DELETE

นอกจากนี้ เมื่อดึงข้อมูลจากฐานข้อมูลโดยใช้ SELECT คุณสามารถใช้ตัวเลือกต่อไปนี้เพื่อรับค่าของฟิลด์ตารางทั้งหมด:

SELECT * จาก table_name;

โดยปกติแล้ว การดำเนินการเหล่านี้สามารถใช้ตัวดำเนินการอื่นนอกเหนือจาก WHERE ได้ มีหลายรายการโดยเฉพาะเมื่อเรียกข้อมูลโดยใช้ SELECT: ในที่นี้มี UNION สำหรับรวมผลลัพธ์ของการสืบค้นหลายรายการ และ JOIN ประเภทต่างๆ การลงรายการทุกอย่างยาวมากและมันจะน่าเบื่อสำหรับทั้งฉันและคุณที่จะอ่านข้อความนี้

ดังนั้นเรามาตกลงกัน: หากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับบางสิ่งบางอย่างเพียงเขียนเกี่ยวกับเรื่องนี้ในความคิดเห็นแล้วฉันจะพยายามตอบคุณ หรือสมาชิกที่มีความรู้ในชุมชนของเราก็จะทำเช่นนั้น ตกลง? 😉

ดังนั้นเราจะไม่อยู่บนบล็อกนี้ในตอนนี้

หากคุณต้องการลบข้อมูลทั้งหมดออกจากตาราง คุณสามารถใช้คำสั่ง MySQL ต่อไปนี้:

ตัด table_name;

ก่อนที่จะเรียกตามที่กล่าวไว้ข้างต้น คุณอาจต้องปิดการใช้งานการตรวจสอบคีย์ต่างประเทศในกรณีที่มีตาราง MySQL ที่เกี่ยวข้อง ซึ่งอาจป้องกันไม่ให้ดำเนินการที่จำเป็น

จุดที่น่าสนใจอีกจุดที่ควรทราบคือ คำสั่งนี้ไม่ได้รีเซ็ตตัวนับ AUTO_INCREMENT ซึ่งใช้ในการสร้างค่าฟิลด์โดยอัตโนมัติโดยไม่จำเป็นต้องตั้งค่าด้วยตนเอง

ฟิลด์ประเภทนี้ส่วนใหญ่มักใช้เพื่อสร้างค่าสำหรับรหัสฟิลด์คีย์หลักซึ่งใช้เพื่อสร้างความสัมพันธ์ระหว่างข้อมูลจากตารางที่ต่างกัน

นั่นคือถ้าก่อนที่จะลบข้อมูลตารางโดยใช้ ตัดค่าตัวนับสูงสุดคือ 1200 จากนั้นบันทึกแรกหลังจากขั้นตอนนี้จะมีค่าตัวระบุ 1201 โดยหลักการแล้ว ไม่เป็นไร หากคุณได้กำหนดขนาดที่เพียงพอสำหรับฟิลด์นี้ คุณจะไม่ตกอยู่ในอันตรายจากการล้นค่าในเร็วๆ นี้

อย่างไรก็ตาม ในบางกรณี เมื่อโค้ดของแอปพลิเคชันมีการผูกมัดกับค่าของฟิลด์ ลักษณะการทำงานนี้อาจทำให้เกิดความไม่สะดวกได้

เพื่อหลีกเลี่ยงปัญหานี้ ให้ใช้ตัวเลือกนี้แทนคำสั่งด้านบน:

ตัดทอนตาราง someTable RESTART IDENTITY;

ตัวเลือกการเรียกคำสั่งนี้ ตัดจะอนุญาตให้คุณรีเซ็ตค่าตัวนับฟิลด์จาก AUTO_INCREMENT. ดังนั้น ค่าฟิลด์ของเรกคอร์ดที่เพิ่มครั้งแรกหลังจากการลบนี้จะเป็น 1 แทนที่จะเป็น 1201 ดังตัวอย่างด้านบน

วิธีลบฐานข้อมูล MySQL ผ่านทางบรรทัดคำสั่ง

วงจรชีวิตของการทำงานกับฐานข้อมูลกำลังจะสิ้นสุดลงและจบลงอย่างมีเหตุผล - ด้วยการลบออก ในการดำเนินการนี้ในคอนโซล MySQL คุณต้องเรียกใช้คำสั่งต่อไปนี้ (ในกรณีนี้ คำสั่งฐานข้อมูลที่จะถูกลบอาจไม่ถูกเลือกโดยคำสั่ง ใช้):

ลบฐานข้อมูลdatabase_name;

การดำเนินการเดียวกันนี้สามารถทำได้โดยใช้ยูทิลิตี้ MySQL mysqladmin ซึ่งฉันได้กล่าวไว้แล้วในตอนต้นของบทความเมื่อสร้างฐานข้อมูล:

Mysqladmin ปล่อย Database_name;

เมื่อคุณเรียกคำสั่ง ข้อความต่อไปนี้จะปรากฏขึ้นในคอนโซลเซิร์ฟเวอร์:

การปล่อยฐานข้อมูลอาจเป็นสิ่งที่เลวร้ายมาก
ข้อมูลใด ๆ ที่เก็บไว้ในฐานข้อมูลจะถูกทำลาย

คุณต้องการวางฐานข้อมูล 'database_name' จริงๆ หรือไม่

กล่าวโดยสรุป นี่เป็นคำเตือนว่าการลบฐานข้อมูล MySQL เป็นความคิดที่แย่มาก ขอยืนยันการดำเนินการด้วย หากคุณเห็นด้วยให้เขียน และกด เข้าบนแป้นพิมพ์หลังจากนั้นข้อความต่อไปนี้จะปรากฏขึ้นบนหน้าจอ (หากทุกอย่างเป็นไปด้วยดีแน่นอน):

ฐานข้อมูล "database_name" ลดลง

แค่นั้นแหละ :)

วิธีลบผู้ใช้ MySQL ในคอนโซล

ตอนนี้ชะตากรรมเดียวกันก็จะตกอยู่กับผู้ใช้ MySQL ที่เราสร้างขึ้นเพื่อแสดงให้คุณเห็นว่ามันทำงานอย่างไร แต่ก่อนอื่น เป็นความคิดที่ดีที่จะตรวจสอบว่ามีผู้ใช้ที่ต้องการอยู่จริงหรือไม่ก่อนที่จะลบออก

ตั้งแต่ MySQL 5.7 มีคำสั่งเดียวสำหรับการดำเนินการทั้งสองนี้:

วางผู้ใช้หากมีชื่อผู้ใช้อยู่

MySQL เวอร์ชันก่อนหน้าต้องใช้คำสั่งสองคำสั่งแยกกัน:

ให้สิทธิ์ใช้งานบน *.* ถึง "user_name"@"host_or_IP_address"; วางผู้ใช้ "user_name"@"host_or_IP_address";

น่าเสียดาย ในกรณีนี้ ข้อความเกี่ยวกับการดำเนินการในคอนโซล MySQL นั้นไม่มีข้อมูลตามธรรมเนียม 🙁 ดังนั้น หากต้องการทราบว่าผู้ใช้ MySQL ถูกลบไปแล้ว คุณสามารถใช้คำสั่งต่อไปนี้ซึ่งจะแสดงรายการผู้ใช้ทั้งหมด มีอยู่บนเซิร์ฟเวอร์ MySQL ปัจจุบัน:

เลือกผู้ใช้จาก mysql.user;

ตัวเลือกคำสั่งนี้จะแสดงเฉพาะชื่อผู้ใช้เท่านั้น หากคุณต้องการดูโฮสต์ที่ผู้ใช้สามารถเชื่อมต่อกับเซิร์ฟเวอร์และรายการสิทธิ์คุณสามารถเรียกคำสั่งในรูปแบบต่อไปนี้:

เลือกผู้ใช้, โฮสต์, Grant_priv จาก mysql.user;

นอกจากนี้ในตาราง mysql.user ยังมีฟิลด์อื่น ๆ อีกมากมายที่เก็บสิทธิพิเศษและข้อมูลอื่น ๆ ประเภทอื่น ๆ สามารถดูรายการทั้งหมดได้ที่นี่ - https://mariadb.com/kb/en/library/mysqluser- โต๊ะ/

อย่าสับสนว่านี่คือเอกสารสำหรับ MariaDB DBMS ในทางเทคนิคแล้วก็เหมือนกับ MySQL เพราะ... MariaDB เป็นเพียงสาขาหรือทางแยกจากภาษาอังกฤษ "fork" - สาขา, ทางแยก

ทำไมจึงทำ - อีกครั้งฉันไม่รู้🙂บางทีอาจจะประกาศกับทุกคนอย่างภาคภูมิใจว่า "ฉันมี DBMS ของตัวเอง".. แต่พูดตามตรงฉันไม่ค่อยตระหนักถึงแรงจูงใจและความแตกต่างที่แน่นอนระหว่าง MySQL และ มาเรียดีบี ดังนั้นหากคุณรู้บางอย่างเกี่ยวกับเรื่องนี้การอ่านความคิดเห็นในความคิดเห็นก็น่าสนใจ

กำลังออกจากคอนโซล MySQL

นั่นคือทั้งหมด วงจรชีวิตของฐานข้อมูลและผู้ใช้ซึ่งเริ่มต้นด้วยการสร้างและสิ้นสุดด้วยการลบได้สิ้นสุดลงแล้ว ดังนั้นบรรทัดคำสั่ง MySQL ซึ่งเราใช้งานในคอนโซลเซิร์ฟเวอร์โดยใช้ยูทิลิตี้ mysqlเราไม่ต้องการมันอีกต่อไป

สิ่งที่เหลืออยู่คือการออกไปจากมัน...

ดูเหมือนว่าการดำเนินการนั้นไม่สำคัญ แต่หลายคนในสถานการณ์ที่ต้องออกจากบรรทัดคำสั่ง MySQL เพียงแค่ปิดคอนโซลเซิร์ฟเวอร์แล้วเปิดอีกครั้ง แน่นอนว่าคุณสามารถทำเช่นนี้ได้ แต่จะใช้เวลาทำงานเพิ่มขึ้นเป็นวินาทีและทำให้คุณหงุดหงิดทุกครั้งที่ต้องทำ

ลักษณะการทำงานที่ถูกต้องในสถานการณ์นี้คือเพียงการเรียกคำสั่ง ออกในบรรทัดคำสั่ง MySQL หลังจากนั้นบริการจะกล่าวคำอำลาเราอย่างสุภาพ :)

แค่นั้นเอง 🙂 ดังนั้นในครั้งต่อไปที่คุณไม่จำเป็นต้องสร้างคอนโซลหลายเครื่องแล้วเปิดใหม่ทุกครั้งที่คุณต้องออกจาก MySQL ในคอนโซลและเข้าถึงอีกครั้งเพื่อจัดการเซิร์ฟเวอร์

นั่นคือทั้งหมดที่ฉันอยากจะบอกคุณในวันนี้ ฉันหวังว่าเอกสารสรุปของฉันสำหรับการทำงานกับบรรทัดคำสั่ง MySQL ผ่านทางคอนโซลจะมีประโยชน์ไม่เฉพาะกับฉันเท่านั้น แต่ยังมีประโยชน์กับคุณด้วย

เมื่อพูดถึงการใช้งานจริงของข้อมูลที่นำเสนอในบทความ ฉันอยากจะเตือนคุณว่าโครงสร้างข้างต้นสามารถใช้ได้ไม่เพียงแต่ในบรรทัดคำสั่ง MySQL และคอนโซลเซิร์ฟเวอร์ แต่ยังรวมถึงในคอนโซลของ phpMyAdmin และซอฟต์แวร์อื่น ๆ ที่ให้ โอกาสดังกล่าว

ไม่ว่าคุณจะใช้หรือไม่เป็นธุรกิจของคุณ แต่อย่างที่ฉันได้กล่าวไว้ในตอนต้นของบทความ มีสถานการณ์ต่างๆ ที่การใช้คอนโซล MySQL สามารถช่วยคุณประหยัดเวลาและความเครียดได้ การใช้บรรทัดคำสั่งทุกวันหรือไม่นั้นขึ้นอยู่กับรสนิยมและความชอบส่วนบุคคลเท่านั้น

เขียนความคิดเห็นเกี่ยวกับคำสั่งที่คุณใช้บ่อยที่สุด หรือบางทีคุณอาจรู้เทคนิคอื่น ๆ ไม่ว่าในกรณีใด แบ่งปันความคิดเห็นของคุณกับผู้อื่นและสนทนาต่อไปในความคิดเห็นของผู้ใช้รายอื่น

ฉันสัญญาว่าในกระบวนการนี้ คุณจะได้เรียนรู้สิ่งใหม่ๆ มากมาย เช่นเดียวกับที่ฉันทำเมื่อเขียนบทความแต่ละบทความ :)

นั่นคือทั้งหมด! โชคดีนะ แล้วพบกันใหม่ :)

ป.ล.: หากคุณต้องการเว็บไซต์หรือต้องการเปลี่ยนแปลงเว็บไซต์ที่มีอยู่ แต่ไม่มีเวลาหรือต้องการสิ่งนี้ ฉันสามารถให้บริการได้

ประสบการณ์มากกว่า 5 ปีการพัฒนาเว็บไซต์อย่างมืออาชีพ ทำงานกับ PHP, OpenCart, เวิร์ดเพรส, ลาราเวล, ยี่, MySQL, PostgreSQL, จาวาสคริปต์, ตอบสนอง, เชิงมุมและเทคโนโลยีการพัฒนาเว็บไซต์อื่นๆ

เป็นไปได้ไม่เพียงแต่ผ่าน PHP เท่านั้น MySQL มาพร้อมกับคอนโซลไคลเอ็นต์สำหรับเชื่อมต่อกับเซิร์ฟเวอร์ MySQL คอนโซล - หมายความว่าโปรแกรมไม่มีอินเทอร์เฟซหน้าต่าง แต่มีเพียงอินเทอร์เฟซบรรทัดคำสั่งที่เข้าถึงฐานข้อมูลโดยใช้คำสั่ง SQL

คำสั่งสำหรับการเชื่อมต่อกับ MySQL บนบรรทัดคำสั่ง และยิ่งกว่านั้นคำสั่ง SQL เองก็เหมือนกันสำหรับ . ต่อไปนี้เพื่อความกระชับ ฉันจะเขียน "MySQL" แต่โดยรวมแล้วฉันหมายถึง "MySQL หรือ MariaDB" เนื่องจากในกรณีนี้ไม่มีความแตกต่างระหว่างกัน

ด้วยการเชื่อมต่อผ่านบรรทัดคำสั่งกับ MySQL DBMS คุณสามารถทำงานต่างๆ ได้มากมาย: ดูฐานข้อมูลและตาราง ส่งการสืบค้นไปยังฐานข้อมูล และรับผลลัพธ์ของการดำเนินการการสืบค้นเหล่านี้

หากต้องการเชื่อมต่อกับเซิร์ฟเวอร์ MySQL ให้ใช้คำสั่งโปรแกรมไคลเอนต์ชื่อ mysql.exe จำเป็นต้องเปิดใช้งาน แต่จะต้องไม่ดำเนินการโดยการดับเบิลคลิกเหมือนโปรแกรมทั่วไป แต่ต้องทำจากบรรทัดคำสั่ง

เริ่มต้นด้วยการกดแป้นพิมพ์ลัด วิน+อาร์และมาทำกัน

พรอมต์คำสั่งจะเปิดขึ้น

ตอนนี้เราต้องไปที่โฟลเดอร์ที่มีไฟล์ mysql.exe. โฟลเดอร์นี้ ถังขยะในไดเร็กทอรีที่ติดตั้ง MySQL DBMS ของคุณ ตัวอย่างเช่น ฉันมี MariaDB ซึ่งติดตั้งอยู่ในโฟลเดอร์ C:\เซิร์ฟเวอร์\bin\mariadb\. ดังนั้นไฟล์ที่เราสนใจจึงอยู่ในไดเร็กทอรี C:\เซิร์ฟเวอร์\bin\mariadb\bin\. หากต้องการไปที่ไดเร็กทอรีนี้ให้ใช้คำสั่ง ซีดีด้วยวิธีดังต่อไปนี้:

ซีดี C:\เซิร์ฟเวอร์\bin\mariadb\bin\

ในคำสั่งนี้ ให้แทนที่ C:\Server\bin\mariadb\bin\ ด้วยพาธที่ถูกต้องสำหรับระบบของคุณ

ตอนนี้เรามารันไฟล์ mysql.exe กันดีกว่า ไม่จำเป็นต้องระบุนามสกุลไฟล์.exe - ระบบจะเดาว่าเราหมายถึงอะไร เราจำเป็นต้องใช้ตัวเลือกด้วย -ยูและ -พี. หลังจากตัวเลือกแรกคุณต้องระบุชื่อผู้ใช้ - ราก. หลังจากตัวเลือกที่สองคือรหัสผ่านสำหรับผู้ใช้ ในกรณีของฉัน ไม่ได้ตั้งรหัสผ่าน ดังนั้นฉันจึงทำงานโดยไม่มีตัวเลือก -พี:

Mysql -u รูท

อาจจะดูเหมือนไม่มีอะไรเปลี่ยนแปลงมากนัก แต่ command prompt ใหม่

MariaDB [(ไม่มี)]>

บ่งบอกว่าเราเชื่อมต่อกับเซิร์ฟเวอร์ MySQL ในกรณีของฉันเราเชื่อมต่อกับเซิร์ฟเวอร์ MariaDB อย่างถูกต้อง

หากต้องการดูรายการฐานข้อมูล ให้ป้อนคำสั่ง:

แสดงฐานข้อมูล;

หากต้องการส่งแบบสอบถามในภายหลังไปยังฐานข้อมูลเฉพาะ (เช่น ทดสอบ) ให้ใช้คำสั่ง ใช้:

ใช้การทดสอบ;

หากต้องการดูตารางในฐานข้อมูลที่เลือก ให้รันคำสั่ง:

แสดงตาราง;

มาสร้างตารางกัน:

สร้างตาราง AuthorsTBL (ผู้แต่ง INT ไม่เป็นโมฆะ AUTO_INCREMENT, ชื่อผู้แต่ง VARCHAR (100), คีย์หลัก (AuthorID));

ลองดูเนื้อหาของฐานข้อมูลทดสอบอีกครั้ง

ระบบจัดการฐานข้อมูลยอดนิยม MySQLใช้กันอย่างแพร่หลายสำหรับความต้องการที่หลากหลาย โดยส่วนใหญ่เป็นมาตรฐานโดยพฤตินัยในด้านการโฮสต์อินเทอร์เน็ต แพ็คเกจสำหรับจัดการ DBMS นี้แพร่หลายไม่น้อย - phpMyAdmin. ไม่ต้องสงสัยเลยว่านี่เป็นผลิตภัณฑ์ที่ดีและสะดวก แต่บ่อยครั้งที่ทักษะในการทำงานกับผลิตภัณฑ์นี้มาแทนที่ทักษะในการทำงานกับ DBMS โดยสิ้นเชิง ดังนั้นในเอกสารนี้ เราจึงตัดสินใจแนะนำผู้อ่านของเราให้รู้จักวิธีดำเนินงานการดูแลระบบ MySQL ขั้นพื้นฐานจากบรรทัดคำสั่ง

ตามที่ผู้อ่านขาประจำของเราอาจสังเกตเห็น เราต่อต้านการใช้แผงควบคุมประเภทต่างๆ โดยผู้เริ่มต้นอย่างต่อเนื่อง ไม่ว่าพวกเขาจะสะดวกและแพร่หลายแค่ไหนก็ตาม ในเวลาเดียวกันเราไม่ปฏิเสธการมีอยู่ของพวกมันและเราก็ใช้มันอย่างเพลิดเพลินในกิจกรรมประจำวันของเรา

แต่มีความแตกต่างที่สำคัญอย่างหนึ่ง: ผู้เชี่ยวชาญที่รู้วิธีทำงานกับบรรทัดคำสั่งโดยใช้แผงควบคุมไม่ได้แทนที่ความสามารถในการทำงานกับผลิตภัณฑ์ แต่เพียงทำให้ตัวเองทำงานประจำวันได้ง่ายขึ้นเท่านั้น และผู้เริ่มต้นที่คุ้นเคยกับการดำเนินการทั้งหมดในแผงควบคุมหากไม่สามารถเข้าถึงได้ก็จะตกอยู่ในความตื่นตระหนกอย่างเงียบ ๆ เพราะตอนนี้เขาจำเป็นต้องป้อน "คาถา" บางอย่างลงในคอนโซลสีดำที่เข้าใจยากนี้...

ในความเป็นจริงการทำงานกับ DBMS ในระดับบรรทัดคำสั่งนั้นไม่ใช่เรื่องยากเลยและงานการดูแลระบบบางอย่างก็ทำได้ง่ายกว่าและสะดวกกว่า มาจองกันทันที: โดยการบริหาร เราหมายถึงการบริหารเซิร์ฟเวอร์ DBMS ไม่ใช่ฐานข้อมูลเอง แน่นอนคุณสามารถทำงานกับพวกเขาได้จากบรรทัดคำสั่ง แต่ควรใช้เครื่องมือที่เหมาะสมกว่าสำหรับสิ่งนี้

การจัดการฐานข้อมูลและผู้ใช้ใน MySQL

หากคุณควรเริ่มเต้นรำจากเตา การทำงานกับ DBMS ควรเริ่มต้นด้วยการสร้างฐานข้อมูลและผู้ใช้ฐานข้อมูลเหล่านี้ งานต่างๆ นั้นเรียบง่ายและสามารถแก้ไขได้อย่างสมบูรณ์แบบ และที่สำคัญที่สุดคือทำได้จากคอนโซล ยูทิลิตี้ชื่อเดียวกันได้รับการออกแบบให้ทำงานกับเซิร์ฟเวอร์ MySQL mysqlซึ่งใช้งานได้ในโหมดโต้ตอบ ดังนั้นก่อนอื่นเราจะเชื่อมต่อกับเซิร์ฟเวอร์:

Mysql -u รูท -p

โดยที่สวิตช์ -u ระบุชื่อผู้ใช้ และ -p ระบุการรับรองความถูกต้องของรหัสผ่าน ไวยากรณ์คำสั่งอนุญาตให้คุณระบุรหัสผ่านโดยการป้อนรหัสผ่านโดยไม่ต้องเว้นวรรคทันทีหลังคีย์ แต่ในกรณีนี้ รหัสผ่านจะถูกบันทึกไว้ในประวัติคำสั่ง ซึ่งก็คือ ไม่ดีเลย ดังนั้นจึงควรป้อนรหัสผ่านแบบโต้ตอบจะดีกว่า หลังจากดำเนินการคำสั่งนี้ เราจะพบว่าตัวเองอยู่ในสภาพแวดล้อม MySQL ตามที่ระบุโดยพรอมต์บรรทัดคำสั่งที่เปลี่ยนแปลง

การทำงานในสภาพแวดล้อมนี้มีลักษณะเฉพาะของตัวเอง: แต่ละคำสั่งจะต้องลงท้ายด้วยสัญลักษณ์ ; หรือ \กซึ่งโดยวิธีการที่เขียนไว้ในบรรทัดแรกของคำทักทาย ออกจากโหมดนี้ด้วยคำสั่ง:

เรามาพูดถึงข้อผิดพลาดทั่วไปอย่างหนึ่ง: ลืมใส่เครื่องหมายอัฒภาคที่ท้ายคำสั่ง จะทำอย่างไร? ไม่ใช่เรื่องใหญ่ เพียงกรอกอักขระที่หายไปในบรรทัดถัดไป

ขั้นแรก มาดูรายการฐานข้อมูลกันก่อน:

แสดงฐานข้อมูล

อย่างที่พวกเขาพูดโดยไม่มีรายละเอียดที่ไม่จำเป็น แต่สำหรับงานธุรการส่วนใหญ่ก็เพียงพอแล้ว:

การค้นหารายชื่อผู้ใช้นั้นยากขึ้นเล็กน้อยโดยจัดเก็บในรูปแบบของตารางฐานข้อมูลบริการ mysqlดังนั้นเราจึงเขียนคำขอเล็กๆ น้อยๆ:

เลือกผู้ใช้,โฮสต์จาก mysql.user;

ทีม เลือกเลือกคอลัมน์ที่ระบุ ผู้ใช้โฮสต์ตัวเลือกจากจะระบุตำแหน่งที่เราเลือกคือจากตารางผู้ใช้ของฐานข้อมูล mysql.

คอลัมน์แรกระบุผู้ใช้คอลัมน์ที่สอง - โฮสต์ที่ผู้ใช้รายนี้ได้รับอนุญาตให้เชื่อมต่อ % - หมายถึงค่าใดๆ โปรดทราบว่าหาก อิวานอฟมีในการตั้งค่า โลคัลโฮสต์จากนั้นเมื่อเชื่อมต่อเข้ากับ mysqlตามที่อยู่ 127.0.0.1 เขาจะไม่สามารถเข้าถึงได้ สิ่งนี้จะต้องนำมาพิจารณาเมื่อคุณระบุข้อมูลการเชื่อมต่อกับเซิร์ฟเวอร์ DBMS ในแอปพลิเคชันของคุณ

คุณสามารถดูเจ้าของฐานข้อมูลได้โดยใช้แบบสอบถามต่อไปนี้:

เลือกโฮสต์, db, ผู้ใช้จาก mysql.db;

ไม่จำเป็นต้องมีความคิดเห็นพิเศษที่นี่ ตัวอย่างเช่น, อิวานอฟมีสิทธิในฐานข้อมูลที่มีคำนำหน้า อิวานอฟ_เมื่อเชื่อมต่อผ่าน โลคัลโฮสต์และ andrey ไปยังฐานที่มีคำนำหน้า อันเดรย์_บนโฮสต์ใดก็ได้ คุณสามารถดูสิทธิ์ของผู้ใช้ได้ด้วยคำสั่ง:

แสดงทุนสำหรับ "ivanov"@"localhost";

เราใส่ชื่อผู้ใช้และโฮสต์ด้วยเครื่องหมายคำพูดเดี่ยว

บรรทัดแรกรายงานว่าผู้ใช้ที่ระบุไม่มีสิทธิ์ ( การใช้งาน) ไปยังตารางใดๆ ของฐานข้อมูลใดๆ ( *.* ) บรรทัดที่สองพูดถึงสิทธิ์หลักทั้งหมดสำหรับตารางทั้งหมดของฐานข้อมูลทั้งหมดที่มีคำนำหน้า อิวานอฟ_.

การวิเคราะห์โดยละเอียดเกี่ยวกับระบบสิทธิ์ MySQL นั้นอยู่นอกเหนือขอบเขตของบทความนี้ สมมติว่า สิทธิพิเศษทั้งหมดให้สิทธิ์แก่ผู้ใช้ในฐานข้อมูลของเขา แต่ไม่อนุญาตให้เขาจัดการสิทธิ์การเข้าถึงสำหรับผู้ใช้รายอื่น เมื่อต้องการทำเช่นนี้ จะใช้ชุดสิทธิ์ สิทธิพิเศษทั้งหมดด้วยตัวเลือกการให้ทุนซึ่งมีค่าเริ่มต้น ราก. สำหรับผู้ใช้ทั่วไป ชุดสิทธิ์นี้ซ้ำซ้อน

มาลองสร้างผู้ใช้ใหม่:

สร้างผู้ใช้ "petrov"@"localhost" ระบุด้วย "รหัสผ่าน";

ไวยากรณ์คำสั่งนั้นง่าย เราระบุชื่อผู้ใช้และโฮสต์ตลอดจนข้อมูลการระบุตัวตนในรูปแบบของรหัสผ่าน ค่าที่ส่งผ่านทั้งหมดจะรวมอยู่ในเครื่องหมายคำพูดเดี่ยว เมื่อสร้างผู้ใช้แล้วคุณจะต้องกำหนดสิทธิ์ให้กับเขาซึ่งทำได้โดยใช้คำสั่ง ยินยอม. อันดับแรก เราจะตัดสิทธิ์เขาในฐานข้อมูลของผู้อื่นอย่างชัดเจน:

ให้สิทธิ์การใช้งานบน *.* แก่ "petrov"@"localhost";

จากนั้นเราสามารถกำหนดสิทธิ์ตามดุลยพินิจของเรา เช่น การออกสิทธิ์เต็มรูปแบบในฐานข้อมูลด้วยเทมเพลตชื่อ เปตรอฟ_:

ให้สิทธิพิเศษทั้งหมดบน `petrov\_%`.* แก่ "petrov"@"localhost";

โปรดทราบว่ารูปแบบควรล้อมรอบด้วยตัวอักษร กราวิส (` ) ซึ่งอยู่บนกุญแจด้วยตัวอักษรรัสเซีย E

คุณสามารถให้สิทธิ์แก่ฐานข้อมูลแยกต่างหากได้ดังนี้:

ให้สิทธิพิเศษทั้งหมดบน andrey_drupal8.* ให้กับ "petrov"@"localhost";

หากต้องการเลือกสิทธิ์ ให้ใช้คำสั่ง REVOKE ซึ่งมีไวยากรณ์คล้ายกันเท่านั้น ถึง (ถึงผู้ซึ่ง) แทนที่ด้วย จาก (WHO). ตัวอย่างเช่น:

เพิกถอนสิทธิ์ทั้งหมดบน andrey_drupal8.* จาก "petrov"@"localhost";

เพื่อให้เซิร์ฟเวอร์ MySQL ใช้สิทธิ์ คุณต้องบังคับให้เซิร์ฟเวอร์โหลดแคชสิทธิ์ใหม่ด้วยคำสั่ง:

สิทธิพิเศษฟลัช;

คุณอาจต้องเปลี่ยนรหัสผ่านผู้ใช้:

ตั้งรหัสผ่านสำหรับ "petrov"@"localhost" = รหัสผ่าน("รหัสผ่านใหม่");

เปลี่ยนชื่อ และการเปลี่ยนชื่อไม่ได้หมายถึงการเปลี่ยนชื่อผู้ใช้เสมอไป คุณสามารถเปลี่ยนทั้งชื่อและโฮสต์โดยใช้ค่าผสมใดก็ได้:

เปลี่ยนชื่อผู้ใช้ "petrov"@"localhost" เป็น "petr"@"127.0.0.1";

และสุดท้าย ลบบัญชี:

วางผู้ใช้ "petr"@"127.0.0.1";

มาดูจากผู้ใช้ไปยังฐานข้อมูลกันดีกว่า ในกรณีที่ง่ายที่สุด ในการสร้างฐานข้อมูลใหม่ คำสั่งก็เพียงพอแล้ว:

สร้างฐานข้อมูล petrov_newdb;

สิ่งนี้จะสร้างฐานข้อมูลพร้อมโค้ดเพจเริ่มต้นและการเข้ารหัสการเปรียบเทียบ หากเซิร์ฟเวอร์ DBMS ไม่ได้กำหนดค่าแยกต่างหาก การเข้ารหัสนี้ก็น่าจะเป็นเช่นนั้น latin1_swedish_ciซึ่งในบางกรณีอาจทำให้เกิดปัญหาได้ หากไม่ใช่ตอนนี้และในอนาคต ดังนั้นจึงเป็นหลักการที่ดีที่จะระบุการเข้ารหัสอย่างชัดเจนเมื่อสร้างฐานข้อมูล สำหรับ UTF-8 มันจะเป็นดังนี้:

สร้างฐานข้อมูล petrov_newdb ชุดอักขระเริ่มต้น utf8 เปรียบเทียบ utf8_general_ci;

สำหรับ Windows-1251:

สร้างฐานข้อมูล petrov_newdb ชุดอักขระเริ่มต้น cp1251 เปรียบเทียบ cp1251_general_ci;

หากต้องการลบการใช้ฐานข้อมูล:

วางฐานข้อมูล petrov_newdb;

การตรวจสอบ เพิ่มประสิทธิภาพ และแก้ไขข้อผิดพลาดในฐานข้อมูล MySQL

เนื่องจาก MySQL ทำงานอย่างแข็งขัน ฐานข้อมูลจึงอาจกระจัดกระจายและอาจมีข้อผิดพลาดในข้อมูลตาราง เราไม่ได้พูดถึงความล้มเหลวร้ายแรงในขณะนี้ ควรพิจารณาสถานการณ์ดังกล่าวเป็นรายบุคคล แต่เกี่ยวกับข้อผิดพลาดที่ง่ายที่สุดที่สามารถกำจัดได้สำเร็จโดยใช้ DBMS เอง หากต้องการตรวจสอบ ซ่อมแซม และเพิ่มประสิทธิภาพ จะสะดวกในการใช้ยูทิลิตี้ mysqlcheck

เพื่อตรวจสอบฐานข้อมูลทำที่ไหน andrey_drupal8- ชื่อฐานข้อมูล:

Mysqlcheck -u root -p --check andrey_drupal8

สามารถตรวจสอบฐานข้อมูลทั้งหมดได้ในคราวเดียวด้วยคำสั่ง:

Mysqlcheck -u root -p --check --all-databases

และเนื่องจากเอาต์พุตทั้งหมดมักจะไม่พอดีกับหน้าจอ จึงสมเหตุสมผลที่จะเปลี่ยนเส้นทางไปยังคำสั่ง น้อย:

Mysqlcheck -u root -p --check --all-databases | น้อย

โปรดทราบว่า น้อยช่วยให้คุณสามารถเลื่อนเอาต์พุตทั้งลงและขึ้นโดยใช้ลูกศร กด เพื่อออก ถาม.

หากพบข้อผิดพลาดในฐานข้อมูลใด ๆ คุณควรพยายามแก้ไขโดยระบุ:

Mysqlcheck -u root -p --ซ่อมแซมอัตโนมัติ andrey_drupal8

หากต้องการเพิ่มประสิทธิภาพ ให้ใช้คีย์ - -เพิ่มประสิทธิภาพคุณสามารถเพิ่มประสิทธิภาพฐานข้อมูลเดียวหรือหลายฐานข้อมูลได้ โดยให้แสดงรายการไว้หลังคีย์ --ฐานข้อมูล:

Mysqlcheck -u root -p --optimize -- ฐานข้อมูล andrey_drupal8 petrov_newdb

และทั้งหมดในครั้งเดียว:

Mysqlcheck -u root -p --optimize --all-databases

การอัพโหลดและโหลดดัมพ์ฐานข้อมูล MySQL

งานทั่วไปอีกประการหนึ่งเมื่อจัดการ DBMS ใด ๆ ดัมพ์ฐานข้อมูลจะถูกใช้ทั้งสำหรับการสำรองข้อมูลและการถ่ายโอนหรือการสร้างสำเนา หากการสำรองข้อมูลเป็นกระบวนการอัตโนมัติ คุณจะต้องสร้างสำเนาเพื่อถ่ายโอนไปยังเซิร์ฟเวอร์อื่นหรือก่อนที่จะดำเนินการใดๆ ที่สำคัญในโครงสร้างฐานข้อมูลด้วยตนเอง

และถ้าพูดถึงฐานข้อมูลขนาดใหญ่ล่ะก็ที่นี่ phpMyAdminตัวช่วยที่ไม่ดี มันส่งผลต่อเวลาการทำงานของสคริปต์ ขนาดของไฟล์ที่ดาวน์โหลด หน่วยความจำที่มีอยู่ ฯลฯ และแม้ว่าคุณจะยังสามารถอัปโหลดไฟล์ดัมพ์ขนาดใหญ่ได้ แต่คุณอาจไม่สามารถอัปโหลดไฟล์นั้นกลับได้

เริ่มต้นด้วยการสร้างดัมพ์ยูทิลิตี้นี้ใช้เพื่อจุดประสงค์เหล่านี้ mysqldumpซึ่งมีรูปแบบตามหลังไวยากรณ์ mysqlcheck. หากต้องการดาวน์โหลดดัมพ์ ให้ใช้คำสั่ง:

Mysqldump -u root -p andrey_drupal8 > ~/drupal8.sql

หากต้องการยกเลิกการโหลดฐานข้อมูลหลายรายการพร้อมกัน ให้ใช้คีย์ --ฐานข้อมูลหรือ --ฐานข้อมูลทั้งหมดเพื่อสร้างดัมพ์ของฐานข้อมูลทั้งหมดพร้อมกัน ควรส่งเอาต์พุตของคำสั่งไปยังไฟล์และระบุตำแหน่งของไฟล์ ในกรณีของเรานี่คือไฟล์ drupal8.sqlในโฮมไดเร็กตอรี่ของคุณ คุณยังสามารถไพพ์เอาต์พุตไปยังผู้จัดเก็บและรับไฟล์เก็บถาวรได้ทันที:

Mysqldump -u root -p andrey_drupal8 | gzip > ~/drupal8.sql.gz

โดยทั่วไป เราไม่แนะนำให้ใช้ดัมพ์เดียวสำหรับหลายฐานข้อมูลพร้อมกัน ตัวเลือกที่ดีที่สุดคือดัมพ์ของตัวเองสำหรับแต่ละฐานข้อมูล ในเวลาเดียวกันโดยใช้คีย์ --ฐานข้อมูลทั้งหมดสมเหตุสมผลในกรณีที่คุณต้องการสร้างสำเนาสำรองของเซิร์ฟเวอร์ทั้งหมดอย่างรวดเร็ว เช่น เมื่ออัปเดตหรือติดตั้ง DBMS ใหม่ เพื่อให้คุณสามารถกู้คืนข้อมูลได้อย่างรวดเร็วหากมีสิ่งผิดปกติเกิดขึ้น

ในการกู้คืนฐานข้อมูล คุณต้องส่งดัมพ์ไปยังอินพุตของยูทิลิตี้ mysql สำหรับดัมพ์เดี่ยว คุณควรระบุฐานข้อมูลปลายทางเสมอ เช่น:

Mysql -u root -p andrey_drupal8< ~/drupal8.sql

ปลายทางไม่จำเป็นต้องเป็นฐานข้อมูลต้นทาง แต่โปรดทราบว่าหากมีฐานข้อมูลอยู่แล้ว เนื้อหาทั้งหมดจะถูกแทนที่ด้วยเนื้อหาของดัมพ์

สำหรับดัมพ์ที่มีมากกว่าหนึ่งฐานข้อมูล เพียงระบุ:

Mysql -u รูท -p< ~/all.sql

ในกรณีนี้ แต่ละฐานข้อมูลจะถูกโหลดลงในแหล่งที่มาของตัวเอง หากไม่มีฐานข้อมูลต้นทาง ก็จะถูกสร้างขึ้น

อย่างที่คุณเห็น การสร้างและกู้คืนดัมพ์โดยใช้บรรทัดคำสั่งเกิดขึ้นในบรรทัดเดียวและง่ายกว่าและเร็วกว่าการใช้ phpMyAdmin หรือเครื่องมือที่คล้ายกันมาก

การกู้คืนรหัสผ่านรูท MySQL ที่ถูกลืม

อีกหนึ่งงานที่ได้รับความนิยมมาก สมมติว่าเป็นไปไม่ได้ที่จะกู้คืนรหัสผ่าน superuser ของ MySQL เช่นเดียวกับผู้ใช้รายอื่น แต่คุณสามารถเปลี่ยนได้ ในการดำเนินการนี้ คุณต้องมีสิทธิ์ผู้ใช้ระดับสูงในระบบปฏิบัติการ ขั้นแรก ให้หยุดบริการ DBMS:

บริการ mysql หยุด

จากนั้นเราจะรันมันในเซฟโหมดโดยข้ามตารางสิทธิ์:

Mysqld_safe -- ข้ามการให้สิทธิ์ตาราง &

โปรดทราบว่าหลังจากดำเนินการคำสั่งนี้ พรอมต์บรรทัดคำสั่งจะหายไป เหลือเพียงเคอร์เซอร์กะพริบเท่านั้น เราเขียนโดยตรงที่นั่น:

Mysql -u รูท

และเราพบว่าตัวเองอยู่ในสภาพแวดล้อม mysql ที่มีสิทธิ์รูทโดยไม่ต้องป้อนรหัสผ่าน

สำหรับเราดูเหมือนว่าหลายคนเดาแล้วว่าจะทำอย่างไรต่อไป แต่ ตั้งรหัสผ่านมันจะไม่ทำงานในโหมดนี้ ดังนั้นคุณต้องไปทางอื่น โปรดจำไว้ว่าข้อมูลเกี่ยวกับผู้ใช้จะถูกเก็บไว้ในตาราง ผู้ใช้ฐานข้อมูลบริการ mysql. จากนั้นเราเรียกใช้แบบสอบถามต่อไปนี้:

อัปเดตรหัสผ่านที่ตั้ง mysql.user = รหัสผ่าน ("รหัสผ่านใหม่") โดยที่ user="root";

สำคัญ!ใน MySQL เวอร์ชันใหม่แทนที่จะเป็นคอลัมน์ รหัสผ่านตาราง ผู้ใช้มีการใช้คอลัมน์ การรับรองความถูกต้อง_สตริงดังนั้นแทน ตั้งรหัสผ่านควรระบุ ตั้งค่าการตรวจสอบสิทธิ์_สตริง.

คำขอนี้จะตั้งรหัสผ่านใหม่ รหัสผ่านใหม่สำหรับทุกแถวในคอลัมน์ ผู้ใช้ซึ่งมีอยู่ในรายการ ราก.

มาอัปเดตแคชสิทธิ์กัน:

สิทธิพิเศษฟลัช;

ออกจากโหมดกันเถอะ:

มาหยุดบริการและเริ่มในโหมดปกติ:

บริการ mysql หยุด
บริการ mysql เริ่มต้น

เราหวังว่าหลังจากอ่านบทความนี้ คุณจะได้รับทักษะเบื้องต้นในการทำงานกับ MySQL จากบรรทัดคำสั่ง และจะรู้สึกมั่นใจได้แม้ในขณะที่ phpMyAdmin ไม่พร้อมใช้งาน และอาจพอใจกับความสะดวกของคำสั่งคอนโซลและจะมีโอกาสน้อยลงที่จะป้อน แผงเลือกที่จะจัดการเซิร์ฟเวอร์โดยตรง

  • แท็ก:

กรุณาเปิดใช้งาน JavaScript เพื่อดู

จากผู้เขียน:ที่รัก รถของคุณสตาร์ทไม่ติดเหรอ? บางทีเราอาจลอง "จากผู้เร่งเร้า" ก็ได้? ฉันจะช่วย! ไม่รู้ว่าเป็นยังไงบ้าง? คุณเพิ่งเริ่มเซิร์ฟเวอร์ DBMS ผ่าน cmd หรือไม่ ซึ่งหมายความว่าคุณรู้วิธีสตาร์ท MySQL ผ่านทางบรรทัดคำสั่ง แต่คุณไม่รู้ด้วยซ้ำว่าจะสตาร์ทรถยนต์อย่างไร มาดมัวแซล คุณเป็นสาวผมบลอนด์ที่ “แปลก”!

ความแปลกประหลาดในคำอธิบาย MySQL

เมื่อเตรียมบทความแต่ละบทความ ฉันต้องค้นหาข้อมูลทางอินเทอร์เน็ต "อย่างละเอียด" เพื่อค้นหาเอกสารอ้างอิงเกี่ยวกับ "การสร้างเว็บไซต์" อย่างใดอย่างหนึ่ง โดยส่วนใหญ่แล้ว มีคำแนะนำและบทช่วยสอนโดยละเอียดมากมายที่เผยแพร่บนอินเทอร์เน็ต แต่ไม่ใช่สำหรับ MySQL

แน่นอนว่ายังมีการศึกษาที่คุ้มค่า แต่ส่วนหลักของ DBMS มีเพียงตัวอย่างการเขียนคำสั่งและถึงแม้จะไม่ได้ระบุไวยากรณ์ก็ตาม ในสถานการณ์เช่นนี้ แทบจะเป็นไปไม่ได้เลยที่ “หุ่นจำลอง” ใดๆ จะเข้าใจ เช่น วิธีเชื่อมต่อกับ MySQL ผ่านทางบรรทัดคำสั่ง

ในการค้นหาคำตอบสำหรับผู้เริ่มต้น คุณจะต้องค้นหาในฟอรัมที่มีเนื้อหาเป็นโหล โดยที่นักพัฒนามืออาชีพ (ซึ่งเกือบจะเป็น "นักวิชาการ") จะยอมยอมอธิบายอย่างน้อยก็บางสิ่งตามปกติให้กับผู้เริ่มต้น

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

ลองดูหัวข้อนี้โดยละเอียด และโปรดอย่าทำหน้าบูดบึ้งหากมีคำพูดใดๆ ในเอกสารนี้ดูเหมือนง่ายสำหรับคุณเหมือนกับการสตาร์ทรถ "จากก้านกระทุ้ง"

เปิดตัว cmd

หากต้องการเปิด MySQL จากบรรทัดคำสั่ง ขั้นแรกให้เปิดใช้งานยูทิลิตี้เอง (cmd) ซึ่งรวมอยู่ในชุด Windows มาตรฐาน คุณสามารถทำได้หลายวิธี:

แป้นพิมพ์ลัด Win + R จากนั้นในกล่องโต้ตอบ "Run" ที่ปรากฏขึ้น ให้ป้อน cmd

ผ่านแผงเริ่มต้น

นอกจากนี้ MySQL อาจมาพร้อมกับเชลล์ดั้งเดิม ตัวอย่างเช่น หากคุณติดตั้งเซิร์ฟเวอร์ฐานข้อมูลบนเครื่องท้องถิ่นเป็น “แอปพลิเคชัน” แบบสแตนด์อโลนที่ไม่รวมอยู่ในแพ็คเกจ “สุภาพบุรุษ”

บรรทัดคำสั่ง MySQL ดั้งเดิมเปิดใช้งานเหมือนกับ cmd ปกติ ความแตกต่างในการทำงานของยูทิลิตี้ทั้งสองจะปรากฏในภายหลัง เราจะพูดถึงเรื่องนี้ในหัวข้อถัดไป

การทำงานกับบรรทัดคำสั่ง

ก่อนอื่น เรามาจัดการกับยูทิลิตี้ที่มีอยู่ในระบบปฏิบัติการกันก่อน มาดูวิธีการเปิด MySQL จากบรรทัดคำสั่งของ Windows ในการทำเช่นนี้คุณต้องมี:

พาธไปยังโฟลเดอร์ในระบบไฟล์ PC ที่คุณติดตั้งเซิร์ฟเวอร์ฐานข้อมูล

บัญชีผู้ใช้ – เข้าสู่ระบบและรหัสผ่าน

หากคุณกำลังทำงานกับ Denver ไฟล์ปฏิบัติการจะอยู่บนดิสก์เสมือนที่สร้างขึ้นหลังจากเริ่มต้นเซิร์ฟเวอร์ภายในเครื่องตามเส้นทางนี้: Z:\usr\local\mysql-5.5\bin

ดังที่ฉันได้กล่าวไปแล้ว บรรทัดคำสั่ง MySQL ใน Denwer เปิดใช้งานผ่าน cmd OC นั่นคือเราเปิดใช้งานก่อนแล้วจึงระบุเส้นทางไปยังไฟล์ปฏิบัติการ DBMS สามารถระบุรหัสผ่านและการเข้าสู่ระบบสำหรับการเข้าถึงได้ก่อนหรือหลังการเปิดใช้งานยูทิลิตี้ MySQL สำหรับฉันการลงทะเบียนทุกอย่างพร้อมกันจะสะดวกกว่า: Z:\usr\local\mysql-5.5\bin\mysql.exe -u root

เราเข้าสู่ระบบเซิร์ฟเวอร์ DBMS ด้วยสิทธิ์ของผู้ดูแลระบบ ฉันไม่ได้ตั้งรหัสผ่านสำหรับรูท ดังนั้นจึงไม่ได้ระบุค่าของมัน หลังจากที่เราเปิดใช้งาน MySQL จากบรรทัดคำสั่งแล้ว ข้อมูลความช่วยเหลือเกี่ยวกับเวอร์ชันของยูทิลิตี้ เซิร์ฟเวอร์ และรหัสการเชื่อมต่อจะปรากฏด้านล่าง

เรามาตรวจสอบความถูกต้องของขั้นตอนและ “จุดแข็ง” ของสิทธิของเรากันดีกว่า ตัวอย่างเช่น แสดงรายการตารางทั้งหมดที่ใช้บนเซิร์ฟเวอร์ในปัจจุบัน:

แสดงตารางที่เปิดอยู่

แสดงตารางที่เปิดอยู่ ;

MySQL ในบรรทัดคำสั่งของ Windows ให้เฉพาะตารางที่เป็นส่วนหนึ่งของฐานข้อมูลระบบเท่านั้น เนื่องจากข้อมูลทั้งหมดที่จัดเก็บไว้ในนั้นถูกใช้ในอินสแตนซ์ที่ทำงานอยู่ของ DBMS ด้วยวิธีนี้ทำให้เรารู้ว่าเซิร์ฟเวอร์กำลังทำงานอยู่และเราเข้าสู่ระบบด้วยสิทธิ์ของผู้ดูแลระบบตามที่วางแผนไว้

รูปแบบการทำงานกับเชลล์ที่ติดตั้งร่วมกับระบบการจัดการฐานข้อมูลนั้นแตกต่างกันเล็กน้อย หากต้องการ "สัมผัส" ทั้งหมดนี้ด้วยตัวเราเอง มาเปิดใช้งาน MySQL ผ่านทางบรรทัดคำสั่งนี้กัน

หลังจากเปิดใช้งานแล้ว หน้าต่างจะปรากฏขึ้นซึ่งคุณต้องป้อนรหัสผ่านทันที มิฉะนั้น กระบวนการโต้ตอบทั้งหมดกับยูทิลิตี้นี้จะเหมือนกัน

การทำงานร่วมกับแอปพลิเคชันอื่นๆ

องค์ประกอบของชุดเครื่องมือ DBMS มาตรฐานไม่ได้จำกัดอยู่เพียงเซิร์ฟเวอร์เดียวที่สามารถเรียกใช้งานได้ สามารถดูประเภทต่างๆ ได้โดยดูในโฟลเดอร์เดียวกับที่เซิร์ฟเวอร์ฐานข้อมูลตั้งอยู่ ตัวอย่างเช่น เรียกใช้ยูทิลิตีการถ่ายโอนข้อมูล MySQL ผ่านทางบรรทัดคำสั่ง

ขั้นแรก ไปที่ดิสก์เสมือน จากนั้นใช้คำสั่ง cd ไปยังโฟลเดอร์ที่เก็บยูทิลิตี้นี้ ฉันขอเตือนคุณว่ามันมีไว้สำหรับสร้างสำเนาสำรองของฐานข้อมูล

ในขั้นตอนถัดไป ก่อนที่จะเข้าสู่ระบบ MySQL ผ่านทางบรรทัดคำสั่ง เราจะต้องระบุบัญชีและรหัสผ่านก่อน ตัวอย่างการใช้คำสั่ง mysqldump:

mysqldump -uroot world>C:\Users\home\Desktop\dump\copy.sql

เพื่อให้คำสั่งทำงานได้อย่างถูกต้อง จะต้องสร้างไดเร็กทอรีที่ระบุในขณะที่ดำเนินการ มิฉะนั้นยูทิลิตี้จะส่งข้อความกลับว่าไม่มีเส้นทางดังกล่าว

เป็นที่น่าสังเกตว่าผู้ใช้ MySQL ที่ระบุบนบรรทัดคำสั่งจะต้องมีสิทธิ์ในการแก้ไขฐานข้อมูลหรือบัญชีผู้ดูแลระบบ

ยูทิลิตี้อื่น ๆ ที่รวมอยู่ในชุดมาตรฐานนั้นเปิดตัวในลักษณะเดียวกัน ด้วยความช่วยเหลือเหล่านี้ คุณสามารถดำเนินการดูแลระบบ DBMS ขั้นพื้นฐานทั้งหมดได้: จัดการบทบาท สร้างการสำรองข้อมูล แก้ไขเนื้อหาของพื้นที่จัดเก็บข้อมูล และยังติดตั้งบริการ MySQL จากบรรทัดคำสั่ง โดยทั่วไปแล้ว ทุกอย่างที่ไม่มีเซิร์ฟเวอร์ฐานข้อมูลจะไม่เริ่มทำงาน "จากตัวเร่งเร้า"

ด้านล่างนี้คือรายการคำสั่งที่มีประโยชน์และใช้บ่อยที่สุด MySQLพร้อมตัวอย่าง

mysql ที่จุดเริ่มต้นของบรรทัดหมายความว่าคำสั่งจะถูกดำเนินการหลังจากเข้าสู่ระบบ MySQL.

สัญลักษณ์ # หรือ $ ที่จุดเริ่มต้นของบรรทัดหมายความว่าคำสั่งถูกดำเนินการจากบรรทัดคำสั่ง

เพื่อตรวจสอบสถานะเซิร์ฟเวอร์ MySQLทำ:

สำหรับ ฟรีBSD:

# บริการสถานะเซิร์ฟเวอร์ mysql

วี CentOS/RHEL:

# บริการสถานะ mysqld

MySQLจากคอนโซลหากเซิร์ฟเวอร์ MySQLอยู่บนโฮสต์เดียวกัน:

เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ MySQLจากคอนโซลหากเซิร์ฟเวอร์ MySQLตั้งอยู่บนรีโมตโฮสต์ db1.example.com:

$ mysql -u ชื่อผู้ใช้ -p -h db1.example.com

การทำงานกับฐานข้อมูลและตาราง - การดู การลบ และการแก้ไขบันทึก คอนโซล

สร้างฐานข้อมูลบน MySQLเซิร์ฟเวอร์:

Mysql สร้างฐานข้อมูล

แสดงรายการฐานข้อมูลทั้งหมดบนเซิร์ฟเวอร์ MySQL:

การใช้ mysql ;

แสดงตารางทั้งหมดในฐานข้อมูล:

Mysql แสดงตาราง;

ดูรูปแบบตารางในฐานข้อมูล:

mysql อธิบาย;

ลบฐานข้อมูล:

ฐานข้อมูลการปล่อย Mysql;

ลบตารางออกจากฐานข้อมูล:

ตารางวาง Mysql ;

แสดงเนื้อหาตารางทั้งหมด:

Mysql เลือก * จาก ;

แสดงคอลัมน์และเนื้อหาคอลัมน์ในตารางที่เลือก:

Mysql แสดงคอลัมน์จาก ;

แสดงแถวในตารางเฉพาะที่มี " อะไรก็ตาม ":

Mysql SELECT * จากที่ไหน = "อะไรก็ได้";

แสดงบันทึกทั้งหมดในตารางเฉพาะที่มี "Bob" และหมายเลขโทรศัพท์ "3444444:

Mysql SELECT * จากที่ name = "Bob" และ phone_number = "3444444";

แสดงรายการทั้งหมด ไม่ประกอบด้วยชื่อ "บ๊อบ" และหมายเลขโทรศัพท์ "3444444" เรียงตามช่อง phone_number:

Mysql SELECT * จาก WHERE name != " Bob " AND phone_number = " 3444444 " สั่งซื้อโดย phone_number;

แสดงรายการทั้งหมดที่ขึ้นต้นด้วยตัวอักษร "bob" และหมายเลขโทรศัพท์ "3444444" ในตารางเฉพาะ:

Mysql SELECT * จากที่ชื่อเช่น "Bob %" และ phone_number = "3444444";

แสดงรายการทั้งหมดที่ขึ้นต้นด้วยตัวอักษร "bob" และหมายเลขโทรศัพท์ "3444444" โดยจำกัดรายการที่ 1 ถึง 5:

Mysql SELECT * จาก WHERE ชื่อเช่น "Bob %" และ phone_number = "3444444" จำกัด 1.5;

การใช้นิพจน์ทั่วไป ("REGEXP BINARY") เพื่อค้นหาบันทึก ตัวอย่างเช่น สำหรับการค้นหาโดยไม่ตรงตามตัวพิมพ์ใหญ่-เล็ก ให้ค้นหาระเบียนทั้งหมดที่ขึ้นต้นด้วยตัวอักษร A:

Mysql SELECT * จากที่รับ RLIKE "^ a";

แสดงรายการที่ไม่ซ้ำทั้งหมด:

Mysql เลือกความแตกต่างจาก; mysql SELECT จากเรียงตาม DESC;

แสดงจำนวนแถวในตาราง:

Mysql เลือก COUNT(*) จาก ;

Mysql SELECT SUM(*) จาก ;

การลบคอลัมน์:

Mysql แก้ไขคอลัมน์ดร็อปตาราง;

การเพิ่มคอลัมน์ลงในฐานข้อมูล:

ตารางแก้ไข Mysql เพิ่มคอลัมน์ varchar (20);

การเปลี่ยนชื่อคอลัมน์:

Mysql แก้ไขตารางเปลี่ยน varchar (50);

สร้างคอลัมน์ที่มีชื่อไม่ซ้ำกันเพื่อหลีกเลี่ยงชื่อที่ซ้ำกัน:

ตารางแก้ไข Mysql เพิ่มเฉพาะ ();

การปรับขนาดคอลัมน์:

Mysql แก้ไขตารางแก้ไข VARCHAR (3);

การลบคอลัมน์ออกจากตาราง:

Mysql แก้ไขดัชนีการวางตาราง;

Mysql โหลดข้อมูล INFILE " /tmp/filename.csv " แทนที่ INTO TABLE FIELDS TERMINATED BY , , " LINES TERMINATED BY "n" (field1,field2,field3);

ผู้ใช้เซิร์ฟเวอร์ MySQL รหัสผ่าน - การเพิ่ม การเปลี่ยนผู้ใช้และรหัสผ่าน คอนโซล

การสร้างผู้ใช้ใหม่ - เชื่อมต่อกับเซิร์ฟเวอร์ MySQLในฐานะรูท, สลับไปที่ฐานข้อมูล, เพิ่มผู้ใช้, อัพเดตสิทธิ์:

# mysql -u root -p mysql ใช้ mysql; mysql INSERT INTO user (โฮสต์, ผู้ใช้, รหัสผ่าน) VALUES("%,” ชื่อผู้ใช้ ", รหัสผ่าน (" รหัสผ่าน ")); สิทธิ์ล้างข้อมูล mysql;

การเปลี่ยนรหัสผ่านผู้ใช้จากคอนโซลบนรีโมตโฮสต์ db1.example.org:

# mysqladmin -u ชื่อผู้ใช้ -h db1.example.org -p รหัสผ่าน "รหัสผ่านใหม่"

การเปลี่ยนรหัสผ่านผู้ใช้จากคอนโซล MySQL- เชื่อมต่อในฐานะรูท อัปเดตรหัสผ่าน อัปเดตสิทธิ์:

# mysql -u root -p mysql ตั้งรหัสผ่านสำหรับ " ผู้ใช้ "@" ชื่อโฮสต์ " = รหัสผ่าน (" รหัสผ่านที่นี่ "); สิทธิ์ล้างข้อมูล mysql;

การกู้คืน/การเปลี่ยนรหัสผ่านรูทเซิร์ฟเวอร์ MySQL- หยุด MySQL, เริ่มต้นโดยไม่มีตารางสิทธิ์, เชื่อมต่อในฐานะรูท, ตั้งรหัสผ่านใหม่, ออกและรีสตาร์ท MySQL.

# /etc/init.d/mysql หยุด # mysqld_safe -skip-grant-tables & # mysql -u root mysql ใช้ mysql; mysql อัพเดตชุดผู้ใช้รหัสผ่าน = PASSWORD (" newrootpassword ") โดยที่ User = "root"; มายเอสแอลแอล ; สิทธิพิเศษฟลัช; mysql ออกจาก # /etc/init.d/mysql หยุด # /etc/init.d/mysql เริ่มต้น

ตั้งรหัสผ่านรูทหากมีรหัสผ่านรูท

# mysqladmin -u รหัสผ่านรูท รหัสผ่านใหม่

อัปเดตรหัสผ่านรูท:

# mysqladmin -u root -p oldpassword รหัสผ่านใหม่

การตั้งค่าสิทธิ์ในการเชื่อมต่อกับเซิร์ฟเวอร์จากโฮสต์ localhost ด้วยรหัสผ่าน "passwd" - เชื่อมต่อกับรูทย่อย, สลับไปที่ฐานข้อมูล, การตั้งค่าสิทธิ์, การอัปเดตสิทธิ์:

# mysql -u root -p mysql ใช้ mysql; mysql ให้สิทธิ์การใช้งานบน *.* ให้กับ bob @localhost ที่ระบุโดย " passwd "; สิทธิ์ล้างข้อมูล mysql;

การตั้งค่าสิทธิ์ผู้ใช้เพื่อใช้ฐานข้อมูล - การเชื่อมต่อเป็นรูท, สลับไปยังฐานข้อมูล, การตั้งค่าสิทธิ์, การอัปเดตสิทธิ์:

# mysql -u root -p mysql ใช้ mysql; mysql INSERT INTO db (โฮสต์,Db,ผู้ใช้,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv) ค่า ("%", "ชื่อฐานข้อมูล", "ชื่อผู้ใช้", "Y", "Y", "Y" ย"ย"น"); สิทธิ์ล้างข้อมูล mysql;

Mysql ให้สิทธิ์ทั้งหมดบนชื่อฐานข้อมูล .* ให้กับชื่อผู้ใช้ @localhost; สิทธิ์ล้างข้อมูล mysql;

การอัพเดตข้อมูลในฐานข้อมูล:

ชุดอัปเดต Mysql Select_priv = "Y",Insert_priv = "Y",Update_priv = "Y" โดยที่ = user";

การลบแถวในตาราง:

Mysql ลบจากที่ไหน = "อะไรก็ตาม";

การอัพเดตสิทธิ์ในฐานข้อมูล:

สิทธิ์ล้างข้อมูล Mysql;

การสำรองข้อมูล - การสร้างและกู้คืนฐานข้อมูล คอนโซล

สร้างสำเนาสำรอง (ดัมพ์) ของฐานข้อมูลทั้งหมดลงในไฟล์ alldatabases.sql:

# mysqldump -u root -p รหัสผ่าน -opt ; /tmp/alldatabases.sql

สำรองหนึ่งฐานข้อมูลไปยังไฟล์databasename.sql:

# mysql dump -u ชื่อผู้ใช้ -p รหัสผ่าน - ฐานข้อมูล ชื่อฐานข้อมูล ; /tmp/databasename.sql

สำรองข้อมูลหนึ่งตารางไปยังไฟล์databasename.tablename.sql:

# mysql dump -c -u ชื่อผู้ใช้ -p รหัสผ่าน ชื่อฐานข้อมูล ชื่อตาราง ; /tmp/databasename.tablename.sql

การคืนค่าฐานข้อมูล (หรือตาราง) จากการสำรองข้อมูล:

# mysql -u ชื่อผู้ใช้ -p รหัสผ่าน ชื่อฐานข้อมูล< /tmp/databasename.sql

การสร้างตารางฐานข้อมูล คอนโซล

ชื่อคอลัมน์ระบุด้วยตัวอักษรตัวเล็ก
ตัวอักษรพิมพ์ใหญ่ - ประเภทและคุณลักษณะของคอลัมน์
ใน (วงเล็บ) - ค่าของประเภทคอลัมน์

สร้างตารางตัวอย่างที่ 1:

mysql CREATE TABLE (ชื่อ VARCHAR(20), ชื่อย่อตรงกลาง VARCHAR(3), นามสกุล VARCHAR(35), ส่วนต่อท้าย VARCHAR(3), officeid VARCHAR(10), รหัสผู้ใช้ VARCHAR(15), ชื่อผู้ใช้ VARCHAR(8), อีเมล VARCHAR(35) ), โทรศัพท์ VARCHAR (25), กลุ่ม VARCHAR (15), ประทับวันที่ DATE, ประทับเวลา TIME, pgpemail VARCHAR (255));

สร้างตารางตัวอย่างที่ 2:

Mysql สร้างตาราง (personid INT (50) ไม่ใช่ NULL AUTO_INTCREMENT คีย์หลัก, ชื่อ VARCHAR (35), ชื่อกลาง VARCHAR (50), นามสกุล VARCHAR (50) ค่าเริ่มต้น "bato");