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:
- Stopped MySQL (
/etc/init.d/mysqld stop
) - successful - Created a MySQL directory on my volume, mounted on /vol (
mkdir /vol/mysql
) - Copied the contents of /var/lib/mysql to /vol/mysql (
cp -R /var/lib/mysql /vol/mysql
) - 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. 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
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.
- What am I doing wrong?
- Where can I find the error/s encountered by MySql?
- 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!
I took Garth's suggestion and ran the script with
sh -x
. I found out there are permission issues when accessing themysql.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.
Try mount the original paths using bind.
Mount then shows:
And config file still looks as before: