เรียกใช้ MySQL ในฐานะผู้ใช้ปกติ การทำงานกับ MySQL จากบรรทัดคำสั่ง เปิด mysql จากบรรทัดคำสั่ง

💖 ชอบไหม?แชร์ลิงก์กับเพื่อนของคุณ

คำสั่งนี้จะเริ่มการทำงานของ mysql daemon ในเบื้องหลัง Windows 95/98 ไม่รองรับการรัน mysqld เป็นบริการ บน Windows 2000 mysql daemon ทำงานเป็นบริการ

คุณสามารถเรียกใช้ winmysqladmin.exe ได้ ในกรณีนี้ การตั้งค่าทั้งหมดจะแสดงอยู่ในไฟล์ my.ini

เมื่อเริ่มต้น mysqld คุณสามารถระบุตัวเลือกต่อไปนี้:

B, --basedir=

เส้นทางไปยังไดเร็กทอรีที่ติดตั้ง mysql

H, --ดาต้าไดร์

พาธไปยังไดเร็กทอรีที่จัดเก็บฐานข้อมูล

L, --log=

ชื่อบันทึกธุรกรรม

L, --ภาษา=

ภาษาเริ่มต้น (โดยปกติจะเป็นภาษาอังกฤษ)

P, --พอร์ต=

พอร์ตการเชื่อมต่อ

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

ละเว้นตารางสิทธิพิเศษ สิ่งนี้ทำให้ทุกคนสามารถเข้าถึงตารางทั้งหมดได้อย่างเต็มที่ ผู้ใช้มาตรฐานไม่ควรได้รับสิทธิ์ในการรัน mysqld

ข้ามชื่อแก้ไข

อนุญาตให้คุณให้สิทธิ์การเข้าถึงแก่โฮสต์ที่มีที่อยู่ IP อยู่ในตารางสิทธิ์เท่านั้น ใช้สำหรับการปกป้องในระดับที่สูงขึ้น

ข้ามเครือข่าย

ใช้การเชื่อมต่อผ่านอินเทอร์เฟซ localhost เท่านั้น

แสดงข้อมูลเวอร์ชัน

การมีอยู่ของไอคอนสัญญาณไฟจราจรที่มีสีเขียวที่ใช้งานอยู่ในแถบสถานะบ่งชี้ว่าเซิร์ฟเวอร์กำลังทำงานอยู่ (รูปที่ 9)

ข้าว. 9. แอปพลิเคชัน winmysqladmin กำลังทำงานอยู่

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

ข้าว. 10. การเปิดใช้งานเซิร์ฟเวอร์ MySQL

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

บันทึก.คำสั่ง mysqld และ mysql มีตัวเลือกอื่น แต่ตอนนี้ยังไม่น่าสนใจมากนัก

การเปิดตัวจากเซสชัน DOS ดำเนินการตามที่แสดงด้านล่าง (ในกรณีนี้ จะมีการเชื่อมต่อกับฐานข้อมูล MySQL - รูปที่ 11,12)

ข้าว. 11. เปิดคอนโซล MYSQL

ข้าว. 12. การเปิดตัวคอนโซลสำเร็จ

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

ทีม ใช้MySQL; เลือกฐานข้อมูลปัจจุบัน โดยที่ MYSQL คือชื่อของฐานข้อมูล

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

เปลือก> mysql -h โฮสต์ -u ผู้ใช้ -p

ใส่รหัสผ่าน: ********

สัญลักษณ์ ******** ระบุรหัสผ่านของคุณ ป้อนเมื่อ mysql แสดงพรอมต์ป้อนรหัสผ่าน: Shell คือเชลล์ DOS

หากทุกอย่างใช้งานได้ ข้อมูลและป้ายกำกับบรรทัดคำสั่ง mysql> ควรปรากฏบนหน้าจอ ดังแสดงในรูปที่ 1 4.

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

เมื่อสร้างการเชื่อมต่อแล้ว คุณสามารถตัดการเชื่อมต่อจากเซิร์ฟเวอร์ได้ตลอดเวลาโดยพิมพ์คำสั่ง QUIT ที่บรรทัดคำสั่ง mysql>:

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

การดำเนินการเหล่านี้สามารถทำได้โดยใช้ซอฟต์แวร์พิเศษ เช่น MySQL-Front ซึ่งมีกลไกที่ทำให้แน่ใจว่าผู้ใช้จะได้รับสิทธิ์บางอย่าง (ดูรูปที่ 13, 14)

ข้าว. 13. เปิด MySQL-front

ข้าว. 14. การแก้ไขสิทธิ์ของผู้ใช้

สมมติว่าทุกอย่างได้รับการติดตั้งแล้ว และตอนนี้เราจะเริ่มทำงานแล้ว
มาเชื่อมต่อกัน:
ceval@srv:~$ mysql -pPASSWORD
-p, --รหัสผ่าน=— รหัสผ่านผู้ใช้สำหรับการเชื่อมต่อกับเซิร์ฟเวอร์ MySQL ไม่ควรมีช่องว่างระหว่าง -p และรหัสผ่าน
-u, --user=- ชื่อผู้ใช้เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ MySQL ไม่บังคับ ค่าเริ่มต้นจะเหมือนกับการเข้าสู่ระบบของคุณ ใช้หากการเข้าสู่ระบบแตกต่างจากชื่อผู้ใช้สำหรับเชื่อมต่อกับเซิร์ฟเวอร์ MySQL
$ mysql -u ceval_ -pPASSWORD
หากเราป้อนรหัสผ่านอย่างถูกต้อง เราจะเห็นบรรทัดและข้อความแจ้งต่อไปนี้:

ยินดีต้อนรับสู่การตรวจสอบ MySQL คำสั่งลงท้ายด้วย ; หรือ\ก.
เวอร์ชันเซิร์ฟเวอร์: 5.0.45-Debian
พิมพ์ 'help;' หรือ '\h' เพื่อขอความช่วยเหลือ พิมพ์ '\c' เพื่อล้างบัฟเฟอร์
mysql>

เราสร้างฐานข้อมูลที่เราต้องการด้วยการเข้ารหัส cp1251 คุณสามารถแทนที่การเข้ารหัสที่ระบุด้วยฐานข้อมูลที่ต้องการได้:
สร้างฐานข้อมูล db_name ชุดอักขระเริ่มต้น cp1251 DEFAULT COLLATE cp1251_general_ci;
การลบฐานข้อมูล:
วางฐานข้อมูล db_name;
การเปลี่ยนฐาน
ใช้ `ฐานข้อมูลของฉัน';
การลบตารางออกจากฐานข้อมูล
วางตาราง `db_table`;
เพิ่มเติมอีกเล็กน้อย:
->\g แสดงฐานข้อมูล; //ดูว่ามีฐานข้อมูลอะไรบ้าง
->\g สร้างดาวเทียมฐานข้อมูล; // สร้างฐานข้อมูลใหม่
->\g แสดงฐานข้อมูล; //ตรวจสอบว่ามันถูกสร้างขึ้นหรือไม่
->\q // ออก

MySQL เวอร์ชันต่างๆ อาจมีคำสั่งที่แตกต่างกัน (4 และ 5) ในกรณีนี้ \g - สั่งให้เซิร์ฟเวอร์รันสคริปต์ SQL
กำลังโหลด บันทึกฐานข้อมูล MySQL (สำรอง กู้คืน) ที่ทำงานกับ mysql ubuntu
โหลดฐานข้อมูลด้วยข้อมูลที่บันทึกไว้ (หากข้อมูลถูกบันทึก) พวกเขาจะถูกบันทึกไว้ในไฟล์ baza.sql
mysql
->\g แสดงฐานข้อมูล;
->\u บาซ่า;
- /home/สำรอง/baza.sql
->\q
/home/backup/baza.sql — เส้นทางไปยังไฟล์สำรองข้อมูล
[b]บันทึกฐานข้อมูลพร้อมข้อมูลลงในไฟล์ baza.sql
mysqldump baza > /home/backup/baza.sql;
ฐานข้อมูลถูกจัดเก็บ: /var/lib/mysql/baza- หากต้องการลบฐานข้อมูลทั้งหมด เพียงลบไดเร็กทอรีนี้
สามารถทำได้หลากหลายวิธี:
— เชื่อมต่อผ่าน ssh และทำงานผ่านบรรทัดคำสั่ง
- ใช้ phpmyadmin;
- ใช้แพ็คเกจ mysql-admin - นี่คือยูทิลิตี้การดูแลระบบ MySQL แบบกราฟิก (เครื่องมือ GUI สำหรับการดูแลระบบ MySQL ที่ใช้งานง่าย
มายเอสวายเอส)
ตอนนี้เรามาติดตั้งแพ็คเกจกัน mysql-ผู้ดูแลระบบต่อคัน
sudo aptitude ติดตั้ง mysql-admin
ต่อไปเราไปที่เครื่องระยะไกลและแก้ไขการกำหนดค่า [b]my.cnf
$ sudo นาโน /etc/mysql/my.cnf
ในการเริ่มต้น คุณสามารถตรวจสอบ:
$ netstat -an | เกรป 3306
TCP 0 0 127.0.0.1:3306 0.0.0.0:* ฟัง
ดังที่คุณเห็นจากผลลัพธ์ ขณะนี้ MySQL กำลังฟังบน localhoste แต่เราต้องการให้ MySQL ฟังบนอินเทอร์เฟซทั้งหมด ไม่ใช่แค่บน localhost เท่านั้น ดังนั้นเราจึงค้นหาและแก้ไขรายการต่อไปนี้:

[...]
# แทนที่จะข้ามเครือข่าย ค่าเริ่มต้นคือตอนนี้ให้ฟังอย่างเดียวเท่านั้น
# localhost ที่เข้ากันได้มากกว่าและปลอดภัยไม่น้อย
ที่อยู่ผูก = 127.0.0.1
#
[...]

และเพื่อให้ MySQL ฟังบนอินเทอร์เฟซทั้งหมด เรามาแสดงความคิดเห็นในบรรทัดนี้:
[...]

#bind-address = 127.0.0.1:

[...]
มาหยุด MySQL:
$ sudo /etc/init.d/mysql รีสตาร์ท
มาดูผลลัพธ์ของคำสั่งอีกครั้ง:
$ netstat -an | เกรป 3306
ผลลัพธ์ควรมีลักษณะดังนี้:

TCP 0 0 0.0.0.0:3306 0.0.0.0:* ฟัง

และตอนนี้คุณสามารถเรียกใช้ mysql-admin เพื่อทำงานจากระยะไกลกับ MySQL - Alt+F2 - mysql-admin
หรือ
$mysql-admin
ทำงานกับ mysql ubuntu

สำหรับ Win 32 ให้เลือกการกระจาย: Windows (x86, 32-bit) Zip-Archive.

สำหรับ Win 64: Windows (x86, 64 บิต) Zip-Archive.

หลังจากคลิกที่ปุ่มดาวน์โหลด คุณจะเห็นแบบฟอร์มการลงทะเบียน คุณสามารถข้ามได้โดยคลิกที่ลิงค์ด้านล่าง - ไม่ล่ะ ขอบคุณ เพียงพาฉันไปที่การดาวน์โหลด.

2. สร้างโฟลเดอร์การติดตั้ง ตัวอย่างเช่น - และแกะเนื้อหาของไฟล์เก็บถาวรลงไปเพื่อให้โฟลเดอร์ต่างๆ bin ข้อมูล เอกสาร และอื่นๆอยู่ในรูทของโฟลเดอร์การติดตั้ง

3. มาดูการสร้างไฟล์กำหนดค่า (my.ini) กันดีกว่า เราใช้ไฟล์มาตรฐานหนึ่งไฟล์เป็นพื้นฐาน:

  • my-small.ini – เหมาะสำหรับผู้ที่ใช้ MySQL เป็นครั้งคราวและไม่ต้องการให้เซิร์ฟเวอร์ใช้ทรัพยากรจำนวนมาก
  • my-medium.ini ยังเป็นการกำหนดค่าทรัพยากรต่ำ แต่เหมาะสำหรับผู้ที่ใช้ MySQL เป็นประจำ (เป็นตัวเลือกที่ดีสำหรับเว็บเซิร์ฟเวอร์ในบ้าน)
  • my-large.ini และ my-huge.ini – สำหรับระบบที่ใช้เป็นเซิร์ฟเวอร์ MySQL เฉพาะ อย่างไรก็ตาม my-large.ini สามารถใช้กับโฮมเซิร์ฟเวอร์ได้ หากคุณต้องการประสิทธิภาพ MySQL เพิ่มเติม (RAM ขนาด 512 MB ในปัจจุบันมีไม่มากนัก)
  • my-innodb-heavy-4G – สำหรับเซิร์ฟเวอร์เฉพาะที่มี RAM อย่างน้อย 4 GB และใช้เฉพาะตาราง InnoDB เท่านั้น

ในตัวอย่างนี้ ฉันเลือก my-medium.ini เป็นพื้นฐาน เปลี่ยนชื่อเป็น my.ini และวางไว้ในรูทของโฟลเดอร์การติดตั้ง ( C:\Program Files\MySQL\MySQL เซิร์ฟเวอร์ 5.5).

เปิดเพื่อแก้ไข (ใน Notepad ปกติ) และทันทีหลังจากบรรทัดให้เพิ่มพารามิเตอร์สองตัว:

Basedir=C:/Program Files/MySQL/MySQL Server 5.5 datadir=C:/Program Files/MySQL/MySQL Server 5.5/ข้อมูล

โปรดทราบว่าเส้นทางใช้เครื่องหมายทับ (/) แทนที่จะเป็นแบ็กสแลช (\)

baseir เป็นเส้นทางไปยังโฟลเดอร์การติดตั้ง

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

ในกรณีนี้ นี่เป็นส่วนของไฟล์การกำหนดค่าหลังจากทำการเปลี่ยนแปลง:

# เซิร์ฟเวอร์ MySQL basedir=C:/Program Files/MySQL/MySQL Server 5.5 datadir=C:/Program Files/MySQL/MySQL Server 5.5/data port = 3306 socket = /tmp/mysql.sock ข้ามภายนอกล็อค key_buffer_size = 16M max_allowed_packet = 1M table_open_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K InnoDB_sort_buffer_size = 8M

4. ขั้นตอนต่อไปคือการเพิ่มเส้นทาง C:\Program Files\MySQL\MySQL เซิร์ฟเวอร์ 5.5\binไปยังตัวแปรสภาพแวดล้อม PATH เพื่อให้ง่ายต่อการเรียกใช้ MySQL จากบรรทัดคำสั่ง ในการดำเนินการนี้ ให้เปิดคุณสมบัติของระบบ -> การตั้งค่าระบบเพิ่มเติม -> บนแท็บขั้นสูงที่ด้านล่างสุดของปุ่ม “ตัวแปรสภาพแวดล้อม...” ในหน้าต่างที่เปิดขึ้น ให้เลื่อนดูตัวแปรระบบจนกระทั่งเราพบ Path เลือกบรรทัดนี้แล้วคลิก "เปลี่ยน..." ในตอนท้ายของบรรทัดเราเพิ่มเส้นทางของเรา โดยคงพารามิเตอร์ที่มีอยู่:

โปรดทราบว่าเส้นทางจะถูกคั่นด้วยเครื่องหมายอัฒภาค ตรวจสอบให้แน่ใจว่ามีอัฒภาคที่จุดเริ่มต้นและจุดสิ้นสุดของเส้นทางของคุณ

5. ก่อนดำเนินการทดสอบ ให้เปิดพอร์ต TCP ขาเข้า 3306 ในไฟร์วอลล์ Windows:


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

6. ตอนนี้เราทำการทดสอบการทำงาน ในบรรทัดคำสั่งที่เปิดตัวในฐานะผู้ดูแลระบบ (จำเป็นหากเปิดใช้งาน UAC บน Seven หรือ Vista) ให้รัน:

Mysqld --console

จะปรากฏหลายบรรทัดบนหน้าจอ หากการเปิดตัวสำเร็จ บรรทัดสุดท้ายจะมีลักษณะดังนี้:

เวอร์ชัน: ซ็อกเก็ต "5.5.9-log": พอร์ต "": 3306 MySQL Community Server (GPL)

เปิดหน้าต่างนี้ทิ้งไว้และเปิดหน้าต่างบรรทัดคำสั่งอื่นซึ่งเราป้อน:

Mysql -u รูท

หากการเชื่อมต่อสำเร็จ คุณจะเห็นพร้อมท์คำสั่ง: mysql>

มาดูกันว่าเรามีฐานข้อมูลอะไรบ้าง:

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

อัฒภาคที่ส่วนท้ายของแบบสอบถาม SQL เป็น MANDATORY!

การตอบสนองของทีม:


ในที่สุดเราก็มั่นใจแล้วว่าเซิร์ฟเวอร์ใช้งานได้

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

ใช้รหัสผ่านชุดผู้ใช้ mysql UPDATE = PASSWORD("your_password") WHERE user = "root";

มาตรวจสอบผลลัพธ์กัน:

เลือกผู้ใช้ โฮสต์ รหัสผ่านจากผู้ใช้

ดังที่คุณเห็นในภาพหน้าจอ คอลัมน์รหัสผ่านถูกกรอก ซึ่งหมายความว่ามีการตั้งรหัสผ่านแล้ว

ก่อนออกให้รันคำสั่ง:

สิทธิ์ล้าง;

ตอนนี้เมื่อเชื่อมต่อคุณจะต้องป้อนรหัสผ่าน เมื่อต้องการทำเช่นนี้ ให้ใช้สวิตช์ -p:

Mysql -u รูท -p

หากต้องการปิดระบบ MySQL ให้รัน:

Mysqladmin -u root -p ปิดระบบ

8. ขั้นตอนสุดท้ายคือการเปิด MySQL เป็นบริการระบบ Windows

ตรวจสอบให้แน่ใจว่าไม่มีกระบวนการ MySQL ที่ใช้งานอยู่ในระบบ

ในบรรทัดคำสั่งที่ทำงานในฐานะผู้ดูแลระบบ ให้รัน:

"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld" --ติดตั้ง

ต้องระบุเส้นทางไปยัง mysqld ให้ครบถ้วน (แม้ว่าจะอยู่ในรายการใน PATH)!

หากต้องการเริ่มบริการ ให้เปิด "การจัดการคอมพิวเตอร์" และเริ่มบริการ MySQL ด้วยตนเอง:


หรือง่ายกว่าผ่านบรรทัดคำสั่ง:

เริ่มต้นสุทธิ mysql

หากต้องการลบบริการ ให้หยุดก่อน:

เน็ตหยุด mysql

และดำเนินการ:

"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld" --ลบ

เซิร์ฟเวอร์ฐานข้อมูล MySQL มักใช้เพื่อสร้างโซลูชันเว็บแบบไดนามิก เหตุผลหนึ่ง (หรือบางทีอาจเป็นผลที่ตามมา) ก็คือโฮสต์เกือบทั้งหมดเสนอฐานข้อมูล MySQL ตั้งแต่หนึ่งฐานข้อมูลขึ้นไปในแผนภาษีบนแพลตฟอร์ม UNIX หากคุณใช้โฮสติ้งเสมือน คุณแทบจะไม่จำเป็นต้องศึกษาการบริหารเซิร์ฟเวอร์ คุณเพียงแค่ต้องใช้งานโปรแกรมของคุณตามอินเทอร์เฟซที่รองรับภาษาการเขียนโปรแกรมที่คุณเลือก (PHP มีอินเทอร์เฟซในตัวสำหรับการสื่อสารกับฐานข้อมูล ในเวอร์ชัน 5.0, การสนับสนุน MySQL ถูกย้ายไปยังการพิจารณาไลบรารีลิขสิทธิ์แยกต่างหาก) ข้อกังวลด้านการดูแลระบบอื่นๆ ทั้งหมด - การเริ่มต้น การหยุด การรีบูต การจัดการสิทธิ์และผู้ใช้ การสำรองและการกำหนดค่าเซิร์ฟเวอร์ - ดำเนินการโดยผู้ดูแลระบบของผู้ให้บริการโฮสติ้ง แต่ถ้าคุณติดตั้งเซิร์ฟเวอร์ของคุณเองหรือ VDS (Virtual Dedicated Server) คุณเองก็จะต้องดูแลความแตกต่างทั้งหมดของการทำงานของมัน

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

รายการคำสั่งและตัวเลือกที่มีอยู่ทั้งหมดสามารถรับได้โดยการป้อน "mysqld --help" ในคอนโซล ควรกล่าวว่าคำสั่งเกือบทั้งหมดเป็นแบบสากลและได้รับการสนับสนุนบนทุกแพลตฟอร์มที่เซิร์ฟเวอร์ MySQL ทำงาน แต่มีคำสั่งเฉพาะหลายคำสั่งสำหรับแพลตฟอร์ม Windows NT สำหรับคำสั่งทั้งหมด จะมีไวยากรณ์ที่สมบูรณ์ เมื่อคำสั่งเริ่มต้นด้วยสัญลักษณ์ขีดกลางสองตัว (ลบ) "--" ตามด้วยชื่อของคำสั่งทันทีโดยไม่มีช่องว่าง (หรือตัวเลือก คำเหล่านี้จะมีความหมายเหมือนกันต่อจากนี้) หากคุณต้องการระบุค่า ชื่อคำสั่งจะตามด้วยเครื่องหมาย "=" และค่าที่จะระบุ รูปแบบที่สั้นลงประกอบด้วยหนึ่งขีด ชื่อคำสั่งจะถูกย่อให้เหลือหนึ่งตัวอักษร และระบุพารามิเตอร์โดยคั่นด้วยช่องว่าง เฉพาะตัวเลือก "--socket" เท่านั้นที่ไม่มีรูปแบบสั้น (ควรเป็น "-s") โปรดจำไว้ว่าการเขียนคำสั่งจะต้องตรงตามตัวพิมพ์ใหญ่-เล็ก และคำสั่ง "-l" และ "-L" นั้นแตกต่างอย่างสิ้นเชิง คุณสามารถระบุความคิดเห็นในไฟล์กำหนดค่าได้โดยคั่นด้วยเครื่องหมาย "#" และทั้งบรรทัดจะถูกละเว้นโดยสิ้นเชิง


ก่อนอื่น เรามาทำความรู้จักกับคำสั่งที่สำคัญที่สุดกันก่อน

คำสั่ง --help เป็นคำสั่งที่สำคัญที่สุด โดยจะแสดงรายการคำสั่งที่มีอยู่ทั้งหมด

ช่วยหรือ-? (ในเซิร์ฟเวอร์เวอร์ชัน 4.1 และสูงกว่านั้น ไม่มีคำสั่งสั้น "-h" นอกจากนี้ ในการรันคำสั่ง คุณต้องระบุคำสั่ง "--verbose" ก่อน) - แสดงความช่วยเหลือเกี่ยวกับคำสั่งและตัวเลือกที่มีอยู่ โดยตัวเซิร์ฟเวอร์เองจะไม่แสดงวิธีใช้ เริ่ม.
--version หรือ -V - มีประโยชน์หากคุณต้องการค้นหาเวอร์ชันที่แน่นอนของเซิร์ฟเวอร์ MySQL และแพลตฟอร์มที่เซิร์ฟเวอร์ทำงานอยู่
--user= หรือ -u — ระบุชื่อผู้ใช้ที่มีสิทธิ์เปิดเซิร์ฟเวอร์ โดยทั่วไปไม่แนะนำให้รันเซิร์ฟเวอร์ในฐานะรูท ตัวอย่าง: "--user=vasya"
-p - ใช้ร่วมกับคำสั่ง "-u" และระบุรหัสผ่านบัญชีผู้ใช้ หากไม่มีรหัสผ่าน (การติดตั้งดีฟอลต์ไม่ได้จัดเตรียมรหัสผ่านสำหรับผู้ใช้รูท) สามารถละเว้นคำสั่งได้ โปรดทราบว่าไวยากรณ์คำสั่งแตกต่างออกไป - รหัสผ่านจะถูกระบุในบรรทัดทันทีหลังคำสั่งโดยไม่มีตัวคั่น ตัวอย่าง: "--user=vasya -pverygoodpassword" โดยที่ "verygoodpassword" คือรหัสผ่านของผู้ใช้ "vasya"
-P หรือ --port= - ระบุหมายเลขพอร์ตที่ใช้เชื่อมต่อกับเซิร์ฟเวอร์ mysqld ตามค่าเริ่มต้น เซิร์ฟเวอร์จะฟังพอร์ต TCP 3306 แต่คุณสามารถตั้งค่าอันอื่นได้ โปรดทราบว่าคำสั่งเวอร์ชันย่อจะเขียนด้วยตัวพิมพ์ใหญ่ P เนื่องจากใช้อักษรตัวเล็ก p เพื่อตั้งรหัสผ่านผู้ใช้
--bind-address= - ใช้เพื่อบังคับที่อยู่ IP ของเซิร์ฟเวอร์ ที่อยู่คอมพิวเตอร์ปัจจุบันถูกใช้เป็นค่าเริ่มต้น
--skip-networking - คำสั่งห้ามไม่ให้ใช้การเชื่อมต่อเครือข่ายเพื่อเชื่อมต่อกับเซิร์ฟเวอร์โดยสมบูรณ์ คุณสามารถทำงานได้เฉพาะในเครื่องเท่านั้นจากโฮสต์ localhost

คำสั่งกลุ่มถัดไปได้รับการออกแบบให้ทำงานกับฐานข้อมูล

แสดงข้อความเป็นภาษารัสเซีย - ใช้ -- language=russian

Datadir= หรือ -h - อนุญาตให้คุณระบุไดเร็กทอรีที่เก็บฐานข้อมูลไว้อย่างชัดเจน ซึ่งอาจจำเป็นถ้าคุณต้องการจัดเก็บฐานข้อมูลบนพาร์ติชันหรือไดรฟ์แบบลอจิคัลอื่น หรือหากคุณมีเซิร์ฟเวอร์หลายเครื่องที่ใช้ไดเร็กทอรีต่างกันในการจัดเก็บฐานข้อมูล เป็นที่ยอมรับได้ในการระบุทั้งเส้นทางแบบเต็มและเส้นทางสัมพัทธ์ ตัวอย่าง: "mysqld --datadir=\home\vasya\bases"
--basedir= หรือ -b — พาธไปยังไดเร็กทอรีที่มีเซิร์ฟเวอร์ที่ติดตั้งไว้
--tmpdir= หรือ -t — พาธไปยังไดเร็กทอรีสำหรับไฟล์ชั่วคราว
--ชุดอักขระ-dir=. ตัวเลือกนี้ระบุเส้นทางไปยังไดเร็กทอรีที่มีไฟล์การกำหนดค่าสำหรับการเข้ารหัสต่างๆ ข้อมูลนี้มีความสำคัญสำหรับการเรียงลำดับและการค้นหาที่ถูกต้องในเขตข้อมูลสตริงของตาราง
--ภาษา= หรือ -L - ช่วยให้คุณสามารถแทนที่ภาษาสำหรับการแสดงข้อความและข้อผิดพลาด ภาษาเริ่มต้นคือภาษาอังกฤษ แต่ภาษาอื่นๆ ก็ได้รับการรองรับเช่นกัน โดยเฉพาะภาษารัสเซีย ในการตั้งค่าภาษาเอาต์พุต คุณต้องระบุชื่อเป็นตัวอักษรละติน (รัสเซีย - สำหรับรัสเซีย, อังกฤษ - สำหรับอังกฤษ) เพื่อให้คำสั่งทำงานได้ ต้องมีไดเร็กทอรี \share\ แต่ถ้าเส้นทางไปยังไดเร็กทอรีแตกต่างจากไดเร็กทอรีมาตรฐาน แทนที่จะระบุภาษา คุณจะต้องอธิบายเส้นทางแบบเต็มไปยังไดเร็กทอรี - ตัวอย่างเช่น "-- language=\user\vasya\mysql\langv\russian"
--default-Character-set= - ตั้งค่าการเข้ารหัสอักขระเริ่มต้น ค่าที่เป็นไปได้ของพารามิเตอร์ชุดอักขระ ได้แก่ koi8_ru, german1, cp1251, win1251, koi8_ukr, win1251ukr, win1250 และอื่น ๆ - โดยรวมแล้วมีการเข้ารหัสที่แตกต่างกันมากกว่า 20 รายการ การเข้ารหัสเป็นสิ่งสำคัญหากข้อความในภาษาต่างๆ จะถูกจัดเก็บไว้ในตาราง และสิ่งสำคัญคือต้องคำนึงถึงลักษณะประจำชาติเมื่อค้นหาและจัดเรียงข้อมูล

นี่เป็นตัวเลือกและคำสั่งที่สำคัญที่สุดที่คุณอาจต้องการเมื่อตั้งค่าเซิร์ฟเวอร์ มีคำสั่งมากมาย และหากต้องการศึกษาอย่างครบถ้วน ให้ใช้วิธีใช้ในตัว (โทรผ่านคำสั่ง --help)

คำสั่งบางคำสั่งเป็นคำสั่งเฉพาะและใช้ได้เฉพาะกับ Windows NT เท่านั้น

มีคำสั่งเฉพาะหลายประการสำหรับแพลตฟอร์ม Windows NT
--console - คำสั่งปรากฏในเวอร์ชัน 3.22.4 และได้รับการออกแบบเพื่อแสดงข้อความแสดงข้อผิดพลาดทั้งหมดในหน้าต่างคอนโซลซึ่งมีประโยชน์เมื่อทำการดีบักหรือศึกษาอิทธิพลของพารามิเตอร์ต่าง ๆ บนเซิร์ฟเวอร์
--install - ใช้งานได้เฉพาะบนแพลตฟอร์ม Win2000/XP และลงทะเบียนเซิร์ฟเวอร์ MySQL เป็นบริการระบบ ซึ่งจะเริ่มทุกครั้งที่ระบบบูทและมีอยู่ใน RAM อย่างถาวร (หากคุณต้องการลงทะเบียนบริการ แต่ผู้ใช้จะเปิดใช้งานเอง คำสั่งจะมีลักษณะดังนี้ "- -insatll-manual") คำสั่ง "--remove" จะลบเซิร์ฟเวอร์ออกจากรายการบริการของระบบ
--สแตนด์อโลน - เปิดใช้งานเซิร์ฟเวอร์ภายใต้ Win2000/XP เป็นโปรแกรมแยกต่างหาก แทนที่จะเป็นบริการของระบบ

วิธีที่สะดวกที่สุดในการใช้ยูทิลิตี้กราฟิก WinMySQLAdmin ซึ่งรวมอยู่ในชุดการแจกจ่ายสำหรับการดำเนินการเหล่านี้

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

ด้านล่างนี้คือรายการคำสั่งที่มีประโยชน์และใช้บ่อยที่สุด 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 * จาก WHERE ชื่อเช่น "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" - เชื่อมต่อกับ subroot, สลับไปที่ฐานข้อมูล, การตั้งค่าสิทธิ์, อัปเดตสิทธิ์:

# 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), ID ผู้ใช้ 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");

บอกเพื่อน