In my installation of MySQL the database files are located in
./var/lib/mysql. I wanted to move one of those databases to another drive, so I followed instructions to move one database to a different directory and copied the data files for the database to a different drive, made a symlink to that directory with the same name as the original database folder. Chowned both the directory recusively and the symlink to mysql, same as the other directories in
When I restarted MySQL, everything ran fine, but the database at issue is missing (Not critical because this is a dry run.) I checked the logs and had these errors:
2018-07-28T02:43:59.449437Z 0 [Warning] InnoDB: Ignoring tablespace `sf_master/tablename` because it could not be opened. 2018-07-28T02:43:59.449465Z 0 [ERROR] InnoDB: The error means the system cannot find the path specified. 2018-07-28T02:43:59.449474Z 0 [ERROR] InnoDB: Cannot open datafile for read-only: './sf_master/tablename.ibd' OS error: 71
I set selinux to permissive to see if that was the problem but the errors are the same.
I confirmed that in my.cnf that
symbolic-links=1 and that on the restart I had
innodb_force_recovery = 1
The data folder looks like:
-rw-r-----. 1 mysql mysql 56 Apr 24 2017 auto.cnf drwxr-x---. 2 mysql mysql 4096 Apr 24 2017 mysql drwxr-x---. 2 mysql mysql 4096 Dec 6 2017 operators lrwxrwxrwx. 1 mysql mysql 16 Jul 27 22:33 sf_master -> ./nvme/sf_master drwxr-x---. 2 mysql mysql 8192 Apr 24 2017 sys
I'm posting this problem on serverfault because I think the problem has to do with my understanding of symlinks and the way they are used on directories in linux file systems, or possibly permissions. I'm running a centos 7 server.
Per Wilson Hauck's request the corrected directory is:
-rw-r-----. 1 mysql mysql 56 Apr 24 2017 auto.cnf drwxr-x---. 2 mysql mysql 4096 Apr 24 2017 mysql drwxr-x---. 2 mysql mysql 4096 Dec 6 2017 operators lrwxrwxrwx. 1 mysql mysql 16 Jul 27 22:33 sf_master -> /nvme/sf_master drwxr-x---. 2 mysql mysql 8192 Apr 24 2017 sys
This was really just a very dumb typo error.