นี่คือคำสั่ง pt-show-grantsp ที่สามารถเรียกใช้ในผู้ให้บริการโฮสติ้งฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
pt-show-grants - กำหนด Canonicalize และพิมพ์ MySQL Grants เพื่อให้คุณสามารถทำซ้ำได้อย่างมีประสิทธิภาพ
เปรียบเทียบและควบคุมเวอร์ชัน
เรื่องย่อ
การใช้งาน: pt-show-grants [ตัวเลือก] [DSN]
pt-show-grants แสดงการอนุญาต (สิทธิ์ของผู้ใช้) จากเซิร์ฟเวอร์ MySQL
ตัวอย่าง:
pt-แสดงทุน
pt-show-grants --separate --revoke | แตกต่าง othergrants.sql -
ความเสี่ยง
Percona Toolkit ได้รับการพัฒนา พิสูจน์แล้วในโลกแห่งความเป็นจริง และผ่านการทดสอบอย่างดี แต่ฐานข้อมูลทั้งหมด
เครื่องมือสามารถก่อให้เกิดความเสี่ยงต่อระบบและเซิร์ฟเวอร์ฐานข้อมูล ก่อนใช้เครื่องมือนี้
กรุณา:
· อ่านเอกสารประกอบของเครื่องมือ
·ตรวจสอบเครื่องมือที่เรียกว่า "BUGS"
· ทดสอบเครื่องมือบนเซิร์ฟเวอร์ที่ไม่ได้ใช้งานจริง
·สำรองเซิร์ฟเวอร์ที่ใช้งานจริงของคุณและตรวจสอบการสำรองข้อมูล
DESCRIPTION
pt-show-grants แยกคำสั่ง และจากนั้นพิมพ์สิทธิ์สำหรับบัญชีผู้ใช้ MySQL
ทำไมคุณถึงต้องการสิ่งนี้ มีหลายสาเหตุ
อย่างแรกคือการทำซ้ำผู้ใช้จากเซิร์ฟเวอร์หนึ่งไปยังอีกเซิร์ฟเวอร์หนึ่งได้อย่างง่ายดาย คุณก็สามารถแยกออกได้
เงินช่วยเหลือจากเซิร์ฟเวอร์แรกและไปป์เอาต์พุตโดยตรงไปยังเซิร์ฟเวอร์อื่น
การใช้งานครั้งที่สองคือการมอบเงินช่วยเหลือของคุณลงในการควบคุมเวอร์ชัน หากคุณทำแบบอัตโนมัติทุกวัน
ให้การถ่ายโอนข้อมูลเข้าสู่การควบคุมเวอร์ชัน คุณจะได้รับชุดการเปลี่ยนแปลงปลอมมากมายสำหรับการให้สิทธิ์นั้น
ไม่เปลี่ยนแปลงเพราะ MySQL พิมพ์เงินช่วยเหลือจริงออกมาในลำดับที่ดูเหมือนสุ่ม สำหรับ
เช่น วันหนึ่งมันก็จะพูดว่า
GRANT ลบ แทรก อัปเดตใน `test'.* เป็น 'foo'@'%';
แล้ววันอื่นก็บอกว่า
GRANT INSERT, ลบ, อัปเดตใน `test'.* เป็น 'foo'@'%';
ทุนไม่เปลี่ยนแปลง แต่มีคำสั่ง สคริปต์นี้จัดเรียงทุนภายใน
บรรทัดระหว่าง 'GRANT' และ 'ON' หากมีหลายแถวจาก SHOW GRANTS ให้เรียงลำดับ
แถวด้วย เว้นแต่ว่าจะพิมพ์แถวนั้นด้วยรหัสผ่านของผู้ใช้ก่อนเสมอ ถ้าเป็น
มีอยู่ การดำเนินการนี้จะขจัดความไม่สอดคล้องกันสามประเภทที่คุณจะได้รับจากการรัน SHOW GRANTS
และหลีกเลี่ยงชุดการเปลี่ยนแปลงปลอมในการควบคุมเวอร์ชัน
ประการที่สาม หากคุณต้องการแบ่งเงินช่วยเหลือในเซิร์ฟเวอร์ต่างๆ จะทำได้ยากหากไม่มี "การกำหนดรูปแบบบัญญัติ"
พวกเขาซึ่ง pt-show-grans ทำ เอาต์พุตสามารถกระจายได้อย่างเต็มที่
ด้วย "--เพิกถอน", "--แยก" และตัวเลือกอื่น ๆ pt-show-grants ยังทำให้ง่ายต่อการ
เพิกถอนสิทธิ์เฉพาะจากผู้ใช้ นี้จะน่าเบื่ออย่างอื่น
OPTIONS
เครื่องมือนี้ยอมรับอาร์กิวเมนต์บรรทัดคำสั่งเพิ่มเติม อ้างถึง "บทสรุป" และการใช้งาน
ข้อมูลสำหรับรายละเอียด
--ขอผ่าน
ถามรหัสผ่านเมื่อเชื่อมต่อกับ MySQL
--ชุดอักขระ
แบบสั้น: -A; ประเภท: string
ชุดอักขระเริ่มต้น หากค่าเป็น utf8 ให้ตั้งค่า binmode ของ Perl บน STDOUT เป็น utf8
ส่งผ่านตัวเลือก mysql_enable_utf8 ไปยัง DBD::mysql และรัน SET NAMES UTF8 หลังจากนั้น
เชื่อมต่อกับ MySQL ค่าอื่น ๆ ตั้งค่า binmode บน STDOUT โดยไม่มีเลเยอร์ utf8
และรัน SET NAMES หลังจากเชื่อมต่อกับ MySQL
--การกำหนดค่า
ชนิด: Array
อ่านรายการไฟล์ปรับแต่งที่คั่นด้วยเครื่องหมายจุลภาค ถ้าระบุ ต้องนี่ก่อน
ตัวเลือกบนบรรทัดคำสั่ง
--ฐานข้อมูล
แบบสั้น: -D; ประเภท: string
ฐานข้อมูลที่จะใช้ในการเชื่อมต่อ
--defaults-ไฟล์
แบบสั้น: -F; ประเภท: string
อ่านเฉพาะตัวเลือก mysql จากไฟล์ที่กำหนด คุณต้องระบุชื่อพาธที่แน่นอน
--หยด
เพิ่ม DROP USER ก่อนผู้ใช้แต่ละคนในเอาต์พุต
--ล้าง
เพิ่ม FLUSH PRIVILEGES หลังจากส่งออก
คุณอาจต้องการสิ่งนี้ในเซิร์ฟเวอร์ก่อน 4.1.1 หากคุณต้องการลบผู้ใช้ทั้งหมด
--[ไม่มี]ส่วนหัว
ค่าเริ่มต้น: ใช่
พิมพ์ส่วนหัวการถ่ายโอนข้อมูล
ส่วนหัวนำหน้าทุนที่ถูกทิ้ง ดูเหมือนว่า:
-- เงินช่วยเหลือถูกทิ้งโดย pt-show-grants 1.0.19
-- ทิ้งจากเซิร์ฟเวอร์ Localhost ผ่านซ็อกเก็ต UNIX, MySQL 5.0.82-log ที่ 2009-10-26 10:01:04
ดูเพิ่มเติมที่ "--[no]การประทับเวลา"
--ช่วยด้วย
แสดงความช่วยเหลือและออก
--เจ้าภาพ
แบบสั้น: -h; ประเภท: string
เชื่อมต่อกับโฮสต์
--ไม่สนใจ
ประเภท: array
ละเว้นรายชื่อผู้ใช้ที่คั่นด้วยเครื่องหมายจุลภาคนี้
--เท่านั้น
ประเภท: array
แสดงเฉพาะเงินช่วยเหลือสำหรับรายชื่อผู้ใช้ที่คั่นด้วยเครื่องหมายจุลภาคนี้
--รหัสผ่าน
แบบสั้น: -p; ประเภท: string
รหัสผ่านเพื่อใช้ในการเชื่อมต่อ หากรหัสผ่านมีเครื่องหมายจุลภาค จะต้องหลีกเลี่ยง
ด้วยแบ็กสแลช: "exam\,ple"
--ปิด
ประเภท: string
สร้างไฟล์ PID ที่กำหนด เครื่องมือจะไม่เริ่มทำงานหากมีไฟล์ PID อยู่แล้วและ
PID ที่มีอยู่ในนั้นแตกต่างจาก PID ปัจจุบัน อย่างไรก็ตาม หากไฟล์ PID
มีอยู่และ PID ที่มีอยู่ไม่ทำงานอีกต่อไป เครื่องมือจะเขียนทับ PID
ไฟล์ที่มี PID ปัจจุบัน ไฟล์ PID จะถูกลบออกโดยอัตโนมัติเมื่อเครื่องมือออก
--ท่า
แบบสั้น: -P; ประเภท: int
หมายเลขพอร์ตที่ใช้เชื่อมต่อ
--ถอน
เพิ่มคำสั่ง REVOKE สำหรับแต่ละคำสั่ง GRANT
--แยก
แสดงรายการ GRANT หรือ REVOKE แต่ละรายการแยกกัน
เอาต์พุตเริ่มต้นจากคำสั่ง SHOW GRANTS ของ MySQL แสดงรายการสิทธิ์มากมายใน single
ไลน์. ด้วย "--flush" ให้วาง FLUSH PRIVILEGES หลังผู้ใช้แต่ละราย แทนที่จะวางเพียงครั้งเดียวที่
จุดสิ้นสุดของการส่งออกทั้งหมด
--set-vars
ชนิด: Array
ตั้งค่าตัวแปร MySQL ในรายการคู่ "variable=value" ที่คั่นด้วยเครื่องหมายจุลภาค
โดยค่าเริ่มต้น เครื่องมือจะตั้งค่า:
wait_timeout=10000
ตัวแปรที่ระบุในบรรทัดคำสั่งจะแทนที่ค่าเริ่มต้นเหล่านี้ ตัวอย่างเช่น,
การระบุ "--set-vars wait_timeout=500" จะแทนที่ค่าเริ่มต้นที่ 10000
เครื่องมือจะพิมพ์คำเตือนและดำเนินการต่อหากไม่สามารถตั้งค่าตัวแปรได้
--เบ้า
แบบฟอร์ม; ประเภท: string
ไฟล์ซ็อกเก็ตที่ใช้สำหรับการเชื่อมต่อ
--[ไม่มี]ประทับเวลา
ค่าเริ่มต้น: ใช่
เพิ่มการประทับเวลาไปที่ส่วนหัวของการถ่ายโอนข้อมูล
ดูเพิ่มเติมที่ "-[ไม่มี]ส่วนหัว"
--ผู้ใช้
แบบสั้น: -u; ประเภท: string
ผู้ใช้สำหรับเข้าสู่ระบบหากไม่ใช่ผู้ใช้ปัจจุบัน
--รุ่น
แสดงเวอร์ชันและออก
DSN OPTIONS
ตัวเลือก DSN เหล่านี้ใช้เพื่อสร้าง DSN แต่ละตัวเลือกจะได้รับเช่น "option=value"
ตัวเลือกจะคำนึงถึงขนาดตัวพิมพ์ ดังนั้น P และ p ไม่ใช่ตัวเลือกเดียวกัน ไม่สามารถ
ช่องว่างก่อนหรือหลัง "=" และถ้าค่ามีช่องว่างจะต้องยกมา
ตัวเลือก DSN คั่นด้วยเครื่องหมายจุลภาค ดูหน้าคู่มือ percona-toolkit สำหรับรายละเอียดทั้งหมด
·ก
dsn: ชุดอักขระ; สำเนา: ใช่
ชุดอักขระเริ่มต้น
· NS
dsn: ฐานข้อมูล; สำเนา: ใช่
ฐานข้อมูลเริ่มต้น
· NS
dsn: mysql_read_default_file; สำเนา: ใช่
อ่านเฉพาะตัวเลือกเริ่มต้นจากไฟล์ที่กำหนด
·ชม
dsn: โฮสต์; สำเนา: ใช่
เชื่อมต่อกับโฮสต์
· NS
dsn: รหัสผ่าน; สำเนา: ใช่
รหัสผ่านเพื่อใช้ในการเชื่อมต่อ หากรหัสผ่านมีเครื่องหมายจุลภาค จะต้องหลีกเลี่ยง
ด้วยแบ็กสแลช: "exam\,ple"
· ป
dsn: พอร์ต; สำเนา: ใช่
หมายเลขพอร์ตที่ใช้เชื่อมต่อ
· NS
dsn: mysql_socket; สำเนา: ใช่
ไฟล์ซ็อกเก็ตที่ใช้สำหรับการเชื่อมต่อ
· ยู
dsn: ผู้ใช้; สำเนา: ใช่
ผู้ใช้สำหรับเข้าสู่ระบบหากไม่ใช่ผู้ใช้ปัจจุบัน
และพวกเรา
ตัวแปรสภาพแวดล้อม "PTDEBUG" เปิดใช้งานเอาต์พุตการดีบักแบบละเอียดไปยัง STDERR การเปิดใช้งาน
การดีบักและดักจับเอาต์พุตทั้งหมดไปยังไฟล์ เรียกใช้เครื่องมือเช่น:
PDEBUG=1 pt-show-grants ... > FILE 2>&1
ระวัง: การดีบักเอาท์พุตมีจำนวนมากและสามารถสร้างเอาต์พุตได้หลายเมกะไบต์
ระบบ สิ่งที่ต้องมี
คุณต้องมี Perl, DBI, DBD::mysql และแพ็คเกจหลักบางตัวที่ควรติดตั้งในทุก
Perl เวอร์ชันใหม่พอสมควร
ใช้ pt-show-grantsp ออนไลน์โดยใช้บริการ onworks.net