วิธีรันคำสั่ง mysql จากเทอร์มินัล


23

ฉันมีคำสั่ง sql ต่อไปนี้ซึ่งฉันมักจะเรียกใช้ใน phpmyadmin โดยการเลือกฐานข้อมูลจากนั้นรันในหน้าต่างคำสั่ง

DELETE FROM `wp_posts` WHERE `post_type` = "attachment"

อย่างไรก็ตามฉันไม่เคยทำสิ่งนี้ผ่านเทอร์มินัลมาก่อน คำถามของฉันคือฉันจะ "ชี้" คำสั่งนี้ไปยังฐานข้อมูลเฉพาะแล้วเรียกใช้ได้อย่างไร


1
ลองmysql -u root -pดู
มิทช์

1
คุณจะเรียกใช้คำสั่งใด ๆ โดยไม่ต้องลงชื่อเข้าใช้ MySQL ได้อย่างไร ก่อนอื่นในเทอร์มินัลคุณต้องเข้าสู่ระบบโดยใช้ MySQL usernameและpasswordEg: mysql -uroot -pจากนั้นเมื่อเข้าสู่ระบบในการเลือกฐานข้อมูลของคุณโดยใช้use <yourdatabasenameแล้วคุณสามารถเรียกใช้คำสั่งนี้
Saurav Kumar

คุณยังสามารถใส่ฐานข้อมูลไว้ด้านหน้าของตารางได้เช่น: DELETE FROM {databasename}.wp_posts WHERE post_type` = "สิ่งที่แนบมา" `
Rinzwind

ดูคำถามที่เกี่ยวข้องเพิ่มเติม: askubuntu.com/q/1077725/295286
Sergiy Kolodyazhnyy

คำตอบ:


33

เพื่อให้คุณเรียกใช้จากเทอร์มินัลคุณจะต้องเข้าสู่ระบบ mysql ก่อนจากนั้นจึงรันโปรแกรมของคุณ รหัสที่เหมาะจะเป็น

mysql -u(username) -p(password) (the name of the database) -e "DELETE FROM `wp_posts` WHERE `post_type` = "attachment""

ฉันแน่ใจว่างานนี้หวังว่าจะช่วยได้


2
คุณต้องหนี backticks โดยใช้ \ ถ้าดำเนินการจากเทอร์มินัลปกติ
myol

13

ฉันคิดว่าคุณลืมชื่อผู้ใช้ของคุณสำหรับ mySQL ดังนั้นโปรดป้อนชื่อผู้ใช้และรหัสผ่านที่ถูกต้องเมื่อคุณพิมพ์คำสั่ง mysql สำหรับเช่น

$ mysql   -u  root   -p 
Enter Password:

หมายเหตุ: ชื่อผู้ใช้และรหัสผ่านเริ่มต้นคือ root


1
การเข้าถึงรูทเริ่มต้นจำเป็นต้องใช้ sudosudo mysql -u root -p
Peter Krauss

การเข้าถึงรูทเริ่มต้นจำเป็นต้องใช้ sudosudo mysql -u root -p
Peter Krauss

9

เพียงพิมพ์คำสั่งต่อไปนี้ในเทอร์มินัลเพื่อใช้ล่าม mysql:

mysql -u root -p database_name

ป้อนรหัสผ่านของคุณจากนั้นคุณสามารถเรียกใช้คำสั่ง mysql ของคุณ

อีกวิธีหนึ่งคือการใช้:

mysql -u root -p database_name << eof
ลบจาก `wp_posts` WHERE` post_type` = "ไฟล์แนบ"
EOF

4

ลองสิ่งนี้:

mysql --host *HOST_IP* --user *USER* --password=*PASSWORD* -D *DATABASE_NAME* -e "DELETE FROM `wp_posts` WHERE `post_type` = "attachment" ;

1

ใช้ไคลเอนต์ MySQL CLI

$ mysql -u <user> -p
mysql> use <your-database>
mysql> DELETE FROM `wp_posts` WHERE `post_type` = "attachment"

สังเกตว่าฉันใช้-uและชื่อผู้ใช้ แต่ใน-pฉันไม่ได้ตั้งค่าอะไร MySQL จะถามรหัสผ่านของคุณ

และถ้าคุณพยายามใช้มันแบบอินไลน์คุณสามารถใช้

$ mysql -u <user> -p <your-database> -e "DELETE FROM `wp_posts` WHERE `post_type` = 'attachment'"

ที่นี่สังเกตเห็นว่าฉันกำลังใช้-eอาร์กิวเมนต์ มันยืนสำหรับดำเนินการ

เคล็ดลับโปร

ในไคลเอนต์ MySQL คุณสามารถใช้:

mysql> show databases;

หากคุณต้องการดู dabatases ทั้งหมดในเซิร์ฟเวอร์ของคุณ และคุณสามารถใช้:

mysql> use <database>;
mysql> show tables;

ถ้าคุณต้องการดูตารางทั้งหมดในฐานข้อมูล

ฉันใช้$และmysql>เป็นพรอมต์$หมายถึง terminal Linux ของคุณและmysql>ลูกค้า MySQL


-1

มีหลายขั้นตอนในการเรียกใช้งาน MySQL ใน Linux Ubuntu Terminal

  1. เรียกใช้งานไคลเอนต์ MySQL โดยใช้คำสั่งต่อไปนี้: mysql -u root -p
  2. เป็นสิ่งสำคัญในการสร้างฐานข้อมูลใหม่ก่อนโดยใช้คำสั่ง: create database demo_db;
  3. จากนั้นคุณต้องอนุญาตฐานข้อมูลโดยใช้คำสั่ง: grant all on demo_db.* to ‘testuser’ identified by ‘12345’;
  4. จากนั้นล็อกอินจากฐานข้อมูลโดยใช้คำสั่ง: mysql -u testuser -p
  5. จากนั้นคุณสามารถเริ่มต้นด้วยคำสั่ง SQL ที่แท้จริงได้

ฉันอ้างถึงบทความhttp://www.codingalpha.com/run-mysql-database-linux-ubuntu/ซึ่งพวกเขาได้อธิบายขั้นตอนที่สมบูรณ์แบบเพื่อดำเนินการ MySQL ใน Linux Ubuntu! หวังว่าฉันได้ MySQL ของคุณทำงานอย่างสมบูรณ์


1
โปรดทราบว่าmysqlเป็นลูกค้าไม่ใช่เซิร์ฟเวอร์ ก่อนที่จะเริ่มลูกค้าตรวจสอบว่าเซิร์ฟเวอร์ทำงานโดยการออกและถ้ามันไม่ได้ทำงานเริ่มต้นด้วยsudo status mysql sudo start mysql
Guss

-2

ตกลงโดยทั่วไปมันเป็น "SELECT databasename;" จากนั้นดำเนินการคำสั่งของฉัน


1
คุณยังสามารถระบุชื่อฐานข้อมูลในบรรทัดคำสั่งเช่นmysql -u root -p databasename- ป้อนรหัสผ่านเมื่อได้รับแจ้งและคุณกำลังใช้ฐานข้อมูล
David Purdue
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.