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!
Best Answer
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.