37

I have the following sql command which I usually run in phpmyadmin by selecting the database, then running it in the command window.

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

However I've never done this via terminal before. My question is, how do I "point" this command to a specific database and then run it?

Zanna
  • 72,312
jc.yin
  • 561

7 Answers7

46

For you to run it from terminal, you need to be logged into mysql first and then you execute your program. The ideal code would be

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

I`m sure this works, hope it helps

sosytee
  • 2,738
19

I think you have forgot your user name for mySQL. so please enter the correct user name and password when you type mysql command. for eg

$ mysql   -u  root   -p 
Enter Password:

Note: Default user name and password is root

muru
  • 207,228
10

Just type the following command in terminal to use mysql interpreter:

mysql -u root -p database_name

Enter your password, then you can run your mysql commands.

Another way is to use:

mysql -u root -p database_name << eof
DELETE FROM `wp_posts` WHERE `post_type` = "attachment"
eof
Radu Rădeanu
  • 174,089
  • 51
  • 332
  • 407
7

Try this:

mysql --host *HOST_IP* --user *USER* --password=*PASSWORD* -D *DATABASE_NAME* -e "DELETE FROM `wp_posts` WHERE `post_type` = "attachment" ;
Bruni
  • 11,099
tej18
  • 83
2

Using the MySQL CLI client.

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

Notice that I'm using -u and username, but in -p I'm not setting anything. MySQL will ask you for your password.

And if you're trying to use it inline, you can use

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

Here, notice that I'm using also -e argument. It stands for execute.

Pro tip

In MySQL client you can use:

mysql> show databases;

if you want to view all dabatases in your server. And you can use:

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

if you want to view all tables into a database.

I'm using $ and mysql> as prompts, $ means your Linux terminal, and mysql>, MySQL client.

-1

There is a series of steps to Execute MySQL in Linux Ubuntu Terminal.

  1. Execute MySQL Client using the following command: mysql -u root -p
  2. It is important to Create a New Database first using the command: create database demo_db;
  3. Then you have to Authorize the Database using the command: grant all on demo_db.* to ‘testuser’ identified by ‘12345’;
  4. Then Log in from the Database itself using the command: mysql -u testuser -p
  5. Then, you can actually start with the actual SQL Commands.

I referred to the article http://www.codingalpha.com/run-mysql-database-linux-ubuntu/ where they have explained perfect steps to Execute MySQL in Linux Ubuntu! Hope I got your MySQL Running Perfectly.

-2

Okay basically it was "SELECT databasename;" then executing my command.

jc.yin
  • 561