Linux – Moving MySQL directory on an Amazon EC2 machine

amazon ec2linuxMySQL

I'm trying to have MySQL point to a directory on an EBS volume I mounted on my EC2 machine.
I took th following steps:

  1. Stopped MySQL (/etc/init.d/mysqld stop) – successful
  2. Created a MySQL directory on my volume, mounted on /vol (mkdir /vol/mysql)
  3. Copied the contents of /var/lib/mysql to /vol/mysql (cp -R /var/lib/mysql /vol/mysql)
  4. Chanded the owner and group of that directory to match the original (chown -R mysql:mysql /vol/mysql) – after this step, the 2 directories are identical.
  5. Edited the /etc/my.cnf file (commented 2 original lines):

    [mysqld]
    \#datadir=/var/lib/mysql
    \#socket=/var/lib/mysql/mysql.sock
    datadir=/vol/mysql
    socket=/vol/mysql/mysql.sock
    
  6. Started MySQL (/etc/init.d/mysqld start) – FAILED

The error file /var/log/mysqld.log contains the following lines:

100205 20:52:54  mysqld started  
100205 20:52:54  InnoDB: Started; log sequence number 0 43665  
100205 20:52:54 [Note] /usr/libexec/mysqld: ready for connections.  
Version: '5.0.45'  socket: '/vol/mysql/mysql.sock'  port: 3306  Source distribution  

No other errors are available.

  1. What am I doing wrong?
  2. Where can I find the error/s encountered by MySql?
  3. If I restore the original lines, MySQL starts, leading me to believe it may be a permissions issue – but permissions are the same for both directories?

Thanks!

Best Answer

I took Garth's suggestion and ran the script with sh -x. I found out there are permission issues when accessing the mysql.sock file. So I left the old one in the conf file, ran it again and ta-da it works and runs from the new location!

Thanks Gareth for showing me the way. I gave you a +1 on the comment but you did not post an answer.

Hopefully, this question will help some other people trying to do the same.