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