I recently found myself trying to use drush to set up a Drupal 6 install on a server where I did not have root access. I kept getting errors along the lines of this:
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 1234 bytes)
I didn't have permission to edit the php.ini file for php_cli, so I had to find another workaround. The solution's pretty simple and comes courtesy of the drushrc.php file.
drush looks in a list of locations for a config file, and the example.drush.php which you'll find inside includes in your drush directory contains the following instructions:
* Rename this file to drushrc.php and optionally copy it to one of * five convenient places, listed below in order of precedence: * * 1. Drupal site folder (e.g sites/{default|example.com}/drushrc.php). * 2. Drupal installation root. * 3. In any location, as specified by the --config (-c) option. * 4. User's .drush folder (i.e. ~/.drush/drushrc.php). * 5. System wide configuration folder (e.g. /etc/drush/drushrc.php). * 6. Drush installation folder.
I simply followed these instructions (going for ~/.drush/drushrc.php in this case), and added the following line to the end of the file:
ini_set('memory_limit', '128M');
You can check that this is getting picked up like so:
drush php-eval 'print ini_get("memory_limit")' ; 128M
...and the real proof of the pudding is that I'm no longer getting the memory exhausted error messages.