我想在我的 linux mysql 中使用 D:\xampp\mysql\data 中的数据库而不移动它。所以我可以在 linux 和 windows 上处理它们
这是我做的:
# mount -t ntfs -o uid=mysql,gid=mysql,dmask=002,fmask=113 /dev/sda5 /media/public/
# cd /var/lib/mysql
# ln /media/public/xampp/mysql/data/my_db -s
# chown -R mysql:mysql /var/lib/mysql/my_db
但是mysql无法读取数据库表
use my_db
show tables
报错:mysql无法读取目录'./my_db'
这似乎是一个权限问题。我该怎么办?
PS:只有一台机器有两个操作系统,Windows和Linux。
当我在 Windows 或 Linux 中时,我想使用与 datadir
相同的目录。
附言:我试过ntfs-3g
。现在 mound 分区及其所有内容所有权是 mysql:mysql
。/var/lib/mysql/my_db 也是 mysql:mysql
。但我仍然在 show tables
错误 1018 (HY000):无法读取 './my_db/' 的目录(错误号:13)
最佳答案
首先,绝不允许多个 MySQL 实例同时使用数据文件。这是灾难的根源。
其次,为什么两台机器都需要MySQL的服务器?为什么不直接使用 linux 机器上的客户端通过网络连接到 windows 机器上的服务器?
第三,如果您真的必须这样做,我建议启用master-master replication它们之间。所以每台服务器都有自己的存储空间,并且会自动来回传送更改。
编辑
啊哈,等等...你是双引导吗?如果是这样,您需要确保 mysql
用户可以读取整个 /var/lib/mysql
目录。仅对 my_db
文件夹进行 chmod 是不够的。
哦,你是如何将挂载点链接到 MySQL 的数据目录的(这不在你的命令列表中)......
关于mysql - Linux:MySQL:如何在 Linux 中使用安装在 NTFS 上的 mysql 数据库作为 mysql 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3524203/