By FLY


2012-02-02 15:43:31 8 Comments

After a module update, my site has become unusable, and only shows a php error message. I tried circumventing the problem with drush cc, but that didn't help.

Also tried with a custom php script but that has issues finding my DRUPAL_ROOT

I just want to clear the cache tables from Drupal 7 directly on the mysql server, but I'm unsure which tables should be cleared for that and especially which I should not clear.

Do I just need to clear all the [SITE-PREFIX_]cache* tables?

7 comments

@Balu Ertl 2019-04-26 09:35:11

JFR in this article an other flexible pattern-based solution is offered in a form of raw SQL-query, but was not working for me as good as Mohammad's: https://thebarton.org/clear-drupal-cache-sql-query/

@Vagelis Prokopiou 2018-07-02 06:06:41

drush cr and/or drush cc all is supposed to clear all caches, but indeed some cache tables do not get cleared. The following (simplified) command does truncate all caches:

drush sql-query "SHOW TABLES LIKE 'cache%'" | while read table; do drush sql-query "TRUNCATE $table"; done;

@mrded 2016-07-22 11:11:52

Or, you can import you mysql dump with already truncated cache* tables:

gunzip -c ~/database.sql.gz | grep -v 'INSERT INTO `cache'| mysql --user=root drupal

@kenorb 2015-09-26 18:17:27

You can either TRUNCATE/DELETE each table separately which starts from cache_ like:

DELETE FROM cache;
DELETE FROM cache_block;

and so on (check via drush sqlq "SHOW TABLES LIKE 'cache_%'").

Or generate query with list of tables and pass into drush to truncate them, e.g.:

echo "SHOW TABLES LIKE 'cache%'" | $(drush sql-connect) | tail -n +2 | xargs -L1 -I% echo "DELETE FROM %;" | $(drush sql-connect) -v

or:

echo "SELECT CONCAT('DELETE FROM ', GROUP_CONCAT(TABLE_NAME SEPARATOR ';DELETE FROM ') , ' cache;' ) AS statement FROM information_schema.TABLES WHERE TABLE_NAME LIKE 'cache_%'" | drush sqlc --extra=--skip-column-names | drush sqlc

Memcache

If you're using memcached, you also need to flush the caches there, e.g. (Bash syntax):

echo flush_all > /dev/tcp/127.0.0.1/11211

@Mohammad AlQanneh 2016-03-27 06:17:31

To clear all cache tables run this command in your server terminal.

# Truncate cache tables in MySQL regardless of the active cache backend
echo "SHOW TABLES LIKE 'cache%'" | $(drush sql-connect) | tail -n +2 | xargs -L1 -I% echo "TRUNCATE TABLE %;" | $(drush sql-connect) -v

this will loop through all cache tables and truncate them in one command.

@Marko Blazekovic 2016-05-06 11:57:58

This works, tested it and all is zero.

@user18099 2017-10-16 14:30:02

This helped me get a site running again when it had unclear "Class not found" errors.

@Balu Ertl 2019-04-26 09:30:29

Thanks Mohammad, I like your one-liner solution better than the accepted answer, because it's more flexible: the pattern catches custom/contrib cache tables as well, not only the hard-coded lists.

@fifi finance 2014-08-13 09:47:39

Yes, you can simply clear (TRUNCATE) all cache* tables.

This worked well for me:

TRUNCATE TABLE cache;
TRUNCATE TABLE cache_block;
TRUNCATE TABLE cache_bootstrap;
TRUNCATE TABLE cache_field;
TRUNCATE TABLE cache_filter;
TRUNCATE TABLE cache_form;
TRUNCATE TABLE cache_image;
TRUNCATE TABLE cache_menu;
TRUNCATE TABLE cache_page;
TRUNCATE TABLE cache_path;
TRUNCATE TABLE cache_token;
TRUNCATE TABLE cache_update;

If you use drush, run drush sql-cli and paste the above in there.

These commands might not clear all cache tables of your specific site but it can help fix some errors. Afterwards you can try drush cc all to clear the rest.

@millionleaves 2015-11-12 21:25:33

It's also easy to add extra TRUNCATE queries for any additional cache_ tables that might be present on your site.

@Letharion 2012-02-02 15:55:54

Any well written module that has a cache, should prefix it with cache, meaning that the answer to your question is "Yes".

In the odd event that a module caches data somewhere else, you can check your modules for implementations of hook_flush_caches, and see what they remove.

Related Questions

Sponsored Content

1 Answered Questions

Cache is not cleared

  • 2013-09-08 15:57:18
  • Xuphey
  • 493 View
  • 0 Score
  • 1 Answer
  • Tags:   7 caching

1 Answered Questions

[SOLVED] How to clear cache for config entity after making changes?

1 Answered Questions

Boost – Cache expiration does not clear cache in views pages

  • 2016-09-15 15:03:18
  • TBJ
  • 198 View
  • 0 Score
  • 1 Answer
  • Tags:   7 caching

1 Answered Questions

[SOLVED] Drush cache clear corrupting database?

1 Answered Questions

Multisite Cache Clear

2 Answered Questions

[SOLVED] Node's cache isn't automatically cleared on update (intermittent problem)

  • 2012-08-27 18:05:21
  • donut
  • 2222 View
  • 4 Score
  • 2 Answer
  • Tags:   7 nodes caching

2 Answered Questions

[SOLVED] Reset boost cache in a busy site without crash

1 Answered Questions

[SOLVED] How to Control Core Performance Cache Expire Time Of Day

Sponsored Content