如何配置MySQL/MariaDB将物理存储存于NAS,实现多机访问处理?
实现MySQL数据存储在NAS、服务部署在现有设备的方案
针对你的集中式Kodi部署需求,以下是具体实现步骤,核心是将MySQL的数据文件放在NAS,服务跑在你现有可按需开机的设备上,解决SQLite的并发写入问题:
1. 准备工作
- 确保NAS已创建共享目录(SMB或NFS均可),用于存放MySQL数据文件
- 选定一台现有设备(如台式机、笔记本)作为MySQL服务主机,该设备无需持续开机,仅在需要访问媒体库时启动即可
2. 在服务主机安装MySQL/MariaDB
- Linux系统:执行
sudo apt update && sudo apt install mariadb-server完成安装 - Windows系统:下载官方安装包完成常规安装
- 安装后不要立即启动服务,先修改配置文件
3. 修改MySQL配置,指定NAS为数据目录
配置文件位置:
- Linux(MariaDB):
/etc/mysql/mariadb.conf.d/50-server.cnf - Linux(MySQL):
/etc/mysql/my.cnf - Windows:
C:\ProgramData\MySQL\MySQL Server X.X\my.ini(X.X为版本号)
关键配置修改:
挂载NAS共享(Linux):先将NAS共享挂载到本地目录,例如:
sudo mount -t cifs //NAS_IP/your_share /mnt/mysql-data -o username=nas_user,password=nas_pass,uid=mysql,gid=mysql(
uid=mysql,gid=mysql确保MySQL用户有读写权限)
Windows系统直接将NAS共享映射为网络驱动器(如Z:)修改数据目录:找到
datadir参数,替换为NAS挂载/映射路径:datadir = /mnt/mysql-data # Linux datadir = Z:\mysql-data # Windows允许远程连接:找到
bind-address参数,改为:bind-address = 0.0.0.0调整连接数(可选):针对5万条记录的规模,设置合适的并发连接数:
max_connections = 50
4. 初始化数据目录并启动服务
- Linux:执行初始化命令后启动服务:
sudo mysql_install_db --datadir=/mnt/mysql-data --user=mysql sudo systemctl start mariadb - Windows:以管理员身份打开命令提示符,进入MySQL的bin目录,执行:
mysqld --initialize --datadir=Z:\mysql-data net start MySQL
5. 配置远程访问权限
登录MySQL控制台(mysql -u root -p),执行以下SQL创建Kodi专用用户并授权:
CREATE DATABASE kodi; CREATE USER 'kodi_user'@'%' IDENTIFIED BY 'your_secure_password'; GRANT ALL PRIVILEGES ON kodi.* TO 'kodi_user'@'%'; FLUSH PRIVILEGES;
6. 配置Kodi设备连接远程数据库
在每台Kodi设备上操作:
- 进入「设置」→「媒体库」→「数据库」
- 选择「MySQL」作为数据库类型
- 填写服务主机的IP地址、用户名(kodi_user)、密码、数据库名(kodi)
- 保存后,Kodi会自动将媒体库同步至该远程数据库
关键注意事项
- 开机触发:服务主机无需持续开机,需要访问媒体库时启动即可;可通过路由器的WOL(网络唤醒)功能远程唤醒主机,减少手动操作
- 网络稳定性:建议服务主机和NAS使用有线连接,避免无线延迟影响数据库性能
- 数据备份:定期备份NAS上的
mysql-data目录,防止数据丢失 - 权限验证:确保NAS共享的读写权限配置正确,避免MySQL启动失败或无法写入数据
内容的提问来源于stack exchange,提问作者Movielord
相关产品推荐
相关产品推荐

