Android

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

विदà¥?र: ये ६ लोग जीवनà¤à¤° दà¥?ःख और दरà¥?द हà¥

विदà¥?र: ये ६ लोग जीवनà¤à¤° दà¥?ःख और दरà¥?द हà¥

สารบัญ:

Anonim

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

บทช่วยสอนนี้อธิบายวิธีใช้บรรทัดคำสั่งเพื่อสร้างและจัดการฐานข้อมูล MySQL หรือ MariaDB และผู้ใช้

ก่อนที่จะเริ่ม

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

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

mysql -u root -p

สร้างฐานข้อมูล MySQL ใหม่

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

CREATE DATABASE database_name;

Query OK, 1 row affected (0.00 sec)

ERROR 1007 (HY000): Can't create database 'database_name'; database exists

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

CREATE DATABASE IF NOT EXISTS database_name;

Query OK, 1 row affected, 1 warning (0.00 sec)

ในผลลัพธ์ด้านบน Query OK หมายถึงแบบสอบถามได้สำเร็จและ 1 warning บอกเราว่ามีฐานข้อมูลอยู่แล้วและไม่มีฐานข้อมูลใหม่ที่ถูกสร้างขึ้น

แสดงรายการฐานข้อมูล MySQL ทั้งหมด

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

SHOW DATABASES;

ผลลัพธ์จะมีลักษณะดังนี้:

+--------------------+ | Database | +--------------------+ | information_schema | | database_name | | mysql | | performance_schema | | sys | +--------------------+ 5 rows in set (0.00 sec)

information_schema , mysql , performance_schema และ sys ฐานข้อมูลถูกสร้างขึ้นในเวลาการติดตั้งและพวกเขาจะเก็บข้อมูลเกี่ยวกับฐานข้อมูลอื่น ๆ การกำหนดค่าระบบผู้ใช้การอนุญาตและข้อมูลสำคัญอื่น ๆ ฐานข้อมูลเหล่านี้จำเป็นสำหรับการทำงานที่เหมาะสมของการติดตั้ง MySQL

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

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

ในการลบ MySQL หรือ MariaDB ฐานข้อมูลให้รันคำสั่งต่อไปนี้:

DROP DATABASE database_name;

Query OK, 0 rows affected (0.00 sec)

ERROR 1008 (HY000): Can't drop database 'database_name'; database doesn't exist

เพื่อหลีกเลี่ยงข้อผิดพลาดนี้คุณสามารถใช้คำสั่งต่อไปนี้:

DROP DATABASE IF EXISTS database_name;

สร้างบัญชีผู้ใช้ MySQL ใหม่

บัญชีผู้ใช้ใน MySQL ประกอบด้วยชื่อผู้ใช้และส่วนชื่อโฮสต์

ในการสร้างบัญชีผู้ใช้ MySQL ใหม่ให้เรียกใช้คำสั่งต่อไปนี้เพียงแค่แทนที่ 'database_user' ด้วยชื่อของผู้ใช้ที่คุณต้องการสร้าง:

CREATE USER 'database_user'@'localhost' IDENTIFIED BY 'user_password';

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

เช่นเดียวกับเมื่อทำงานกับฐานข้อมูลเพื่อหลีกเลี่ยงข้อผิดพลาดเมื่อพยายามสร้างบัญชีผู้ใช้ที่มีอยู่แล้วคุณสามารถใช้:

CREATE USER IF NOT EXISTS 'database_user'@'localhost' IDENTIFIED BY 'user_password';

Query OK, 0 rows affected, 1 warning (0.00 sec)

เปลี่ยนรหัสผ่านบัญชีผู้ใช้ MySQL

ไวยากรณ์สำหรับการเปลี่ยนรหัสผ่านบัญชีผู้ใช้ MySQL หรือ MariaDB ขึ้นอยู่กับรุ่นของเซิร์ฟเวอร์ที่คุณใช้บนระบบของคุณ

คุณสามารถค้นหารุ่นเซิร์ฟเวอร์ของคุณได้โดยใช้คำสั่งต่อไปนี้:

mysql --version

ALTER USER 'database_user'@'localhost' IDENTIFIED BY 'new_password';

SET PASSWORD FOR 'database_user'@'localhost' = PASSWORD('new_password');

ในทั้งสองกรณีผลลัพธ์ควรมีลักษณะดังนี้:

Query OK, 0 rows affected (0.00 sec)

รายการบัญชีผู้ใช้ MySQL ทั้งหมด

คุณสามารถแสดงรายการบัญชีผู้ใช้ MySQL หรือ MariaDB ทั้งหมดโดยการสืบค้นตาราง mysql.users :

SELECT user, host FROM mysql.user;

ผลลัพธ์ควรมีลักษณะคล้ายกับด้านล่าง:

+------------------+-----------+ | user | host | +------------------+-----------+ | database_user | % | | database_user | localhost | | debian-sys-maint | localhost | | mysql.session | localhost | | mysql.sys | localhost | | root | localhost | +------------------+-----------+ 6 rows in set (0.00 sec)

ลบบัญชีผู้ใช้ MySQL

หากต้องการลบบัญชีผู้ใช้ให้ใช้คำสั่งต่อไปนี้:

DROP USER 'database_user@'localhost';

ERROR 1396 (HY000): Operation DROP USER failed for 'database_user'@'localhost'

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

DROP USER IF EXISTS 'database_user'@'localhost';

Query OK, 0 rows affected, 1 warning (0.00 sec)

ให้สิทธิ์กับบัญชีผู้ใช้ MySQL

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

หากต้องการใช้สิทธิ์ทั้งหมดในบัญชีผู้ใช้ผ่านฐานข้อมูลเฉพาะให้ใช้คำสั่งต่อไปนี้:

GRANT ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';

ในการแกรนด์สิทธิ์ทั้งหมดของบัญชีผู้ใช้ผ่านฐานข้อมูลทั้งหมดให้ใช้คำสั่งต่อไปนี้:

GRANT ALL PRIVILEGES ON *.* TO 'database_user'@'localhost';

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

GRANT ALL PRIVILEGES ON database_name.table_name TO 'database_user'@'localhost';

GRANT SELECT, INSERT, DELETE ON database_name.* TO database_user@'localhost';

เพิกถอนการอนุญาตจากบัญชีผู้ใช้ MySQL

REVOKE ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';

แสดงสิทธิ์บัญชีผู้ใช้ MySQL

ในการค้นหาสิทธิ์ที่มอบให้กับประเภทบัญชีผู้ใช้ MySQL เฉพาะ:

SHOW GRANTS FOR 'database_user'@'localhost';

+---------------------------------------------------------------------------+ | Grants for database_user@localhost | +---------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'database_user'@'localhost' | | GRANT ALL PRIVILEGES ON `database_name`.* TO 'database_user'@'localhost' | +---------------------------------------------------------------------------+ 2 rows in set (0.00 sec)

ข้อสรุป

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

นั่นคือทั้งหมด! หากคุณมีคำถามหรือข้อเสนอแนะอย่าลังเลที่จะแสดงความคิดเห็น

mysql mariadb