MySQL - การดูแลระบบ

การเรียกใช้และการปิดเซิร์ฟเวอร์ MySQL

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

ps -ef | grep mysqld

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

root@host# cd /usr/bin
./safe_mysqld &

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

root@host# cd /usr/bin
./mysqladmin -u root -p shutdown
Enter password: ******

การตั้งค่าบัญชีผู้ใช้ MySQL

สำหรับการเพิ่มผู้ใช้ใหม่ใน MySQL คุณเพียงแค่ต้องเพิ่มรายการใหม่ในไฟล์ user ตารางในฐานข้อมูล mysql.

โปรแกรมต่อไปนี้เป็นตัวอย่างของการเพิ่มผู้ใช้ใหม่ guest ด้วยสิทธิ์ SELECT, INSERT และ UPDATE ด้วยรหัสผ่าน guest123; แบบสอบถาม SQL คือ -

root@host# mysql -u root -p
Enter password:*******
mysql> use mysql;
Database changed

mysql> INSERT INTO user 
   (host, user, password, 
   select_priv, insert_priv, update_priv) 
   VALUES ('localhost', 'guest', 
   PASSWORD('guest123'), 'Y', 'Y', 'Y');
Query OK, 1 row affected (0.20 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 1 row affected (0.01 sec)

mysql> SELECT host, user, password FROM user WHERE user = 'guest';
+-----------+---------+------------------+
|    host   |   user  |     password     |    
+-----------+---------+------------------+
| localhost |  guest  | 6f8c114b58f2ce9e |
+-----------+---------+------------------+
1 row in set (0.00 sec)

เมื่อเพิ่มผู้ใช้ใหม่อย่าลืมเข้ารหัสรหัสผ่านใหม่โดยใช้ฟังก์ชัน PASSWORD () ที่ MySQL ให้มา ดังที่คุณเห็นในตัวอย่างด้านบนรหัสผ่าน mypass ถูกเข้ารหัสเป็น 6f8c114b58f2ce9e

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

คุณยังสามารถระบุสิทธิพิเศษอื่น ๆ ให้กับผู้ใช้ใหม่ได้โดยตั้งค่าของคอลัมน์ต่อไปนี้ในตารางผู้ใช้เป็น "Y" เมื่อเรียกใช้แบบสอบถาม INSERT หรือคุณสามารถอัปเดตได้ในภายหลังโดยใช้แบบสอบถาม UPDATE

  • Select_priv
  • Insert_priv
  • Update_priv
  • Delete_priv
  • Create_priv
  • Drop_priv
  • Reload_priv
  • Shutdown_priv
  • Process_priv
  • File_priv
  • Grant_priv
  • References_priv
  • Index_priv
  • Alter_priv

อีกวิธีในการเพิ่มบัญชีผู้ใช้คือการใช้คำสั่ง GRANT SQL ตัวอย่างต่อไปนี้จะเพิ่มผู้ใช้zara ด้วยรหัสผ่าน zara123 สำหรับฐานข้อมูลเฉพาะซึ่งมีชื่อว่า TUTORIALS.

root@host# mysql -u root -p password;
Enter password:*******
mysql> use mysql;
Database changed

mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
   -> ON TUTORIALS.*
   -> TO 'zara'@'localhost'
   -> IDENTIFIED BY 'zara123';

สิ่งนี้จะสร้างรายการในตารางฐานข้อมูล MySQL ที่เรียกว่าเป็น user.

NOTE - MySQL จะไม่ยุติคำสั่งจนกว่าคุณจะใส่เครื่องหมายเซมิโคลอน (;) ที่ท้ายคำสั่ง SQL

การกำหนดค่าไฟล์ /etc/my.cnf

ในกรณีส่วนใหญ่คุณไม่ควรแตะไฟล์นี้ โดยค่าเริ่มต้นจะมีรายการต่อไปนี้ -

[mysqld]
datadir = /var/lib/mysql
socket = /var/lib/mysql/mysql.sock

[mysql.server]
user = mysql
basedir = /var/lib

[safe_mysqld]
err-log = /var/log/mysqld.log
pid-file = /var/run/mysqld/mysqld.pid

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

คำสั่งการดูแลระบบ MySQL

นี่คือรายการคำสั่ง MySQL ที่สำคัญซึ่งคุณจะใช้เป็นครั้งคราวเพื่อทำงานกับฐานข้อมูล MySQL -

  • USE Databasename - จะใช้เพื่อเลือกฐานข้อมูลในพื้นที่ทำงาน MySQL

  • SHOW DATABASES - แสดงรายการฐานข้อมูลที่ MySQL DBMS เข้าถึงได้

  • SHOW TABLES - แสดงตารางในฐานข้อมูลเมื่อเลือกฐานข้อมูลด้วยคำสั่ง use

  • SHOW COLUMNS FROM tablename: แสดงแอตทริบิวต์ประเภทของแอตทริบิวต์ข้อมูลสำคัญว่าอนุญาตให้ใช้ NULL ค่าเริ่มต้นและข้อมูลอื่น ๆ สำหรับตารางหรือไม่

  • SHOW INDEX FROM tablename - นำเสนอรายละเอียดของดัชนีทั้งหมดบนตารางรวมถึงคีย์หลัก

  • SHOW TABLE STATUS LIKE tablename\G - รายงานรายละเอียดของประสิทธิภาพและสถิติ MySQL DBMS

ในบทต่อไปเราจะพูดถึงวิธีการใช้ไวยากรณ์ PHP ใน MySQL