Mysqldump on DreamHost

Here’s another DreamHost tip, this time for using mysqldump to export a MySQL database. You could always use phpMyAdmin to export a database, but there are times when the mysqldump command is either easier, better, or in my case when I had an extremely large database, the only option.

DreamHost has a mysqldump page in their wiki that explains how to set up a mysqldump script as a cron job, but I wanted to run this as a standalone command. Here is what I came up with:

mysqldump -c -h [domain] --user [user] --password=[password] [database] > [filename]

Note: Any of the values needed for this command can probably be found on the “MySQL Databases” section under the “Goodies” menu item in the DreamHost control panel.

  • [domain] is the hostname associated with the database you are wanting to export.
  • [user] is a user with access to the database.
  • [password] is the password for the user.
  • [database] is the name of the database.
  • [filename] is the name of the file you would like to save from the export, ending in .sql. You can put a file path in here as well. If you don’t supply a path, it will just save the file in your current directory.

Here is an example usage of the command:

mysqldump -c -h mysql.mydomain.com --user myuser --password=mypassword mydatabase > mydatabase.sql

PHP Settings on DreamHost

Recently, I needed to make some modifications to the PHP.ini settings on a shared DreamHost server. Specifically, I needed to increase the file upload size limit (the default was only 7 MB) and increase the PHP memory limit a bit. This turned out to be much easier than I expected.

Changing the PHP.ini settings on a shared server works by creating a phprc file for each version of PHP you want to alter. Any settings in the phprc file will override the ones in the PHP.ini file. Any settings not specified in the phprc file will default to the server PHP.ini file.

The following steps have been pulled out of the PHP.ini page in the DreamHost wiki. Read this page if you’re curious about any limitations that this method might have.

  1. Determine which PHP version your website uses. The easiest way to do this is to login to your DreamHost panel, navigate to the “Manage Domains” section, and click edit next to the domain. On the edit page, you will be able to see the PHP version that has been selected for that domain.
  2. Open a terminal and SSH into your DreamHost server.
  3. Create a new directory in your user home directory that will store a phprc file with custom PHP.ini settings. For PHP 5.3 run this command:
    mkdir -p ~/.php/5.3
    

    or for PHP 5.4, run this command:

    mkdir -p ~/.php/5.4
    
  4. Inside your newly created directory, add a phprc file by running this command:
    touch phprc
    
  5. Edit the phprc file to add your custom settings. At this point, I find it easier to just SFTP into the server and edit the file. Just make sure you have your “view hidden files and folders” option turned on.
  6. Add your custom settings. For an example, here are the settings I added to increase file upload and memory limits:
    upload_max_filesize = 64M
    post_max_size = 64M
    max_execution_time = 500
    max_input_time = 500
    
    memory_limit = 128M
    
  7. Force PHP to reload. To do this, run the following command for PHP 5.3:
    killall php53.cgi
    

    or run this command for PHP 5.4:

    killall php54.cgi
    

That’s it! Your custom PHP.ini settings should now be in effect.

EditorConfig

I just used EditorConfig for the first time on a project, and it seems like something that will be very useful, especially for team development. What is EditorConfig? Here’s the description from the website:

EditorConfig helps developers define and maintain consistent coding styles between different editors and IDEs.

EditorConfig allows you to specify the type and size of tabs used on a project, as well as things like character set and line endings. In a supported editor1, the rules specified in the .editorconfig file will execute when saving the file, making sure the formatting of the file is consistent. It even allows you to configure file extensions separately for languages that have specific requirements that may differ from your default settings.

Using EditorConfig eliminates the need to modify your editor preferences when switching between projects. For example, I’ve always preferred hard tabs, but everyone on my team at work uses soft tabs. You can just add the .editorconfig to a git repository, and everyone who works on the project can be using consistent formatting.

Here is my current .editorconfig file:

# EditorConfig (http://editorconfig.org)

# Set this as the root EditorConfig file
root = true

# Default settings for all files
[*]
charset = utf-8
end_of_line = lf
trim_trailing_whitespace = true
insert_final_newline = true
indent_style = space
indent_size = 4

  1. My editor of choice has been Coda for the past couple years, but it does not yet have EditorConfig support. I’ve been trying out a few other editors, including TextMate and the new GitHub Atom editor. You can find a list of supported editors on the EditorConfig website. 

iTunes MiniPlayer in Full Screen Mode

When using iTunes, I often like to have the app running in full screen mode so that it doesn’t clutter my desktop. When I do this, I also like to have the MiniPlayer open so that I can easily change songs without switching back to the main iTunes window.

Just switching to the MiniPlayer will hide the main window, but I would like to have open at the same time. I found some instructions on how to do this, but I am noting the steps below as I’ve had trouble accessing that page in the past.

  1. Exit out of full screen mode.
  2. Set iTunes to show on all desktops by right clicking (or control + click) on the iTunes icon in the dock and selecting “All Desktops” under the Options menu.
  3. Open the MiniPlayer from the Window menu at the top of the screen.
  4. Enter full screen mode by clicking the full screen button at the top right of the main iTunes window (also found under the View menu).