首先我要说的是,这是我在这篇文章中尝试解答后产生的一个问题我可以在双启动时与 Windows 共享 MySql 数据库文件吗?。我遇到了一个错误,需要帮助解决它。我把这个作为“答案”发布在那里,并被建议打开一个新问题:
所以,这是我的问题。我运行的是 Kubuntu 12.04 和 Windows 7 Ultimate。我的 mysqldata 文件夹现在位于第二个硬盘上,这是我在两个安装之间共享的数据驱动器。这是我的 fstab 上的行:
UUID=9EEAD9BAEAD98F41 /media/Data ntfs-3g defaults,windows_names,locale=en_US.utf8 0 0
我尝试添加uid=mysql,gid=mysql
到选项行。Als -la /media/Data
显示它确实为正确的用户安装,并且权限为 777。/media/Data/Sistemas/mysqldata
文件夹也是如此。在所有情况下,我收到的第一个错误是:
/usr/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'
Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!
130114 2:09:08 [Warning] Can't create test file /media/Data/Sistemas/mysqldata/verditius.lower-test
130114 2:09:08 [Warning] Can't create test file /media/Data/Sistemas/mysqldata/verditius.lower-test
/usr/sbin/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
130114 2:09:08 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
130114 2:09:08 InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
那么我该怎么做才能解决这个问题?
以下是我认为 mysql.cnf 中比较重要的部分:
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /media/Data/Sistemas/mysqldata
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
答案1
好的,在查看了 ubuntu 论坛上的另一个帖子后,我设法让它工作了。问题是您需要允许 mysql 服务对 apparmor 上的新位置进行读写访问。这是帖子http://ubuntuforums.org/showthread.php?t=1412674
但你不需要做所有这些,只需将新位置添加到/etc/apparmor.d/usr.sbin.mysqld
并更改datadir
my.cnf 上的条目即可
/path/to/new/datadir/ r,
/path/to/new/datadir/** rwk,