准备工作与基础环境说明
在开始安装Seafile之前,需要确保服务器系统为CentOS、Ubuntu或Debian等主流Linux发行版。Seafile支持SQLite和MySQL两种数据库,生产环境强烈建议使用MySQL以保证高并发下的读写性能。本次教程重点讲解如何在安装过程中正确配置MySQL密码,彻底避开连接失败的坑。请提前准备好拥有sudo或root权限的账号,并确保服务器内存不低于2GB,磁盘可用空间预留至少20GB用于存放上传文件与系统日志。安装前建议更新系统软件包,防止依赖冲突影响后续步骤。
安装并配置MySQL数据库
首先安装MySQL服务。以Ubuntu为例,执行apt update && apt install mysql-server命令即可完成基础部署。安装过程中系统会弹出对话框提示设置root密码,这里务必牢记你设定的密码,后续Seafile配置必须严格使用此凭证。如果是CentOS系统,安装后需手动初始化安全策略,运行mysql_secure_installation并按向导逐步设定新密码。安装结束后,输入mysql -u root -p进行登录测试,出现数据库命令行提示符即代表服务已就绪。切记不要随意更改默认字符集,保持utf8mb4格式以确保中文文件名兼容。
设置Seafile的MySQL密码连接
下载Seafile服务端安装包并解压后,进入setup目录运行setup-seafile-mysql.sh脚本。此时程序会依次询问服务器名称、域名、通信端口等基本信息。当终端提示Enter the password for the database admin时,直接粘贴或输入你在上一步设置的MySQL root密码。注意密码框不会显示字符,输完回车即可。如果不小心填错,无需慌忙,直接Ctrl+C终止脚本,重新执行即可。接着程序会引导你创建Seafile专用的数据库账户与密码,强烈建议在此处自定义一个独立密码,方便日后权限分离与安全管理。
初始化脚本与密码验证机制
脚本执行完毕后,会自动校验MySQL连通性。若屏幕打印Connection successful,说明密码填写准确且网络策略畅通。若提示拒绝访问,首要排查防火墙是否拦截了3306端口,可使用ufw allow 3306或firewall-cmd添加规则放行。其次检查MySQL配置文件my.cnf中的bind-address参数,若设为127.0.0.1则仅限本机访问,改为0.0.0.0可解除限制。验证通过后,系统会自动生成ccnet.conf、seafile.conf和seahub_settings.py。其中seahub_settings.py内嵌了数据库连接串,包含刚才输入的密码,后期如需变更只需修改该文件对应字段并重启服务。
密码遗忘与紧急重置方案
运维中最头疼的便是密码丢失。若刚装完就忘,可停止Seafile进程后,通过mysql -u root -p重新进库。在SQL命令行执行ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';语句,随后FLUSH PRIVILEGES;刷新缓存。若是线上业务突然报错,且无法找回原密码,只能采用最彻底的重置法:备份现有数据目录后,清空/var/lib/mysql相关文件夹,重新执行安全初始化脚本。针对已经跑起来的旧实例,直接编辑conf/seahub_settings.py,定位到DATABASE字典里的password键,替换为新值,执行./seahub.sh restart重载配置即可无缝切换。
启动服务与最终访问验证
全部配置确认无误后,按顺序运行./seafile.sh start启动底层引擎,再运行./seahub.sh start启动Web管理面板。首次启动Seahub时会强制要求创建超级管理员邮箱及独立登录密码,请注意该密码与数据库凭证互不关联。待服务完全拉起后,打开任意现代浏览器,输入http://服务器公网IP:8000。若能顺利呈现登录界面且能正常提交表单,证明MySQL密码链路已彻底打通。建议将config目录打包压缩异地保存,建立定期备份机制,这样即使未来发生硬件故障或误操作,也能凭借完整凭证快速恢复数据。



