加油
努力

无法进入宝塔界面的情况下,怎么备份网站配置和MySQL数据库?

在无法进入宝塔面板界面的情况下,仍然可以通过服务器的命令行(SSH)手动备份网站文件和MySQL数据库。以下是详细的操作步骤:


✅ 一、前提条件

确保你有以下权限:

  • 可通过 SSH 登录服务器(如使用 root 用户)
  • 知道 MySQL 的 root 密码(或能通过 skip-grant-tables 方式重置)

🔧 二、备份网站文件

宝塔的网站文件默认存放在 /www/wwwroot/ 目录下。

1. 查看网站目录结构

ls /www/wwwroot/

你会看到类似 example.comtest.com 这样的文件夹,每个对应一个网站。

2. 打包网站文件进行备份

以备份 example.com 为例:

cd /www/backup/site
mkdir -p /www/backup/site
tar -zcvf /www/backup/site/example.com_$(date +%Y%m%d_%H%M%S).tar.gz /www/wwwroot/example.com

备份文件将保存在 /www/backup/site/ 下,带时间戳。


🗄️ 三、备份 MySQL 数据库

方法一:使用 mysqldump 命令(推荐)

1. 获取 MySQL root 密码

宝塔的 MySQL 密码通常保存在配置文件中:

cat /www/server/panel/default.pl

这会显示面板登录密码,但不是数据库密码。

查看数据库密码:

cat /www/server/data/mysql_root_pwd.pl

如果没有这个文件,可以尝试:

grep 'password' /www/server/panel/config.json

或者直接使用本地 socket 免密登录(如果当前是 root 用户):

mysql -uroot -p

输入你在安装宝塔时设置的 MySQL 密码。


2. 查看所有数据库

mysql -uroot -p -e "SHOW DATABASES;"

3. 备份单个数据库

mysqldump -uroot -p --single-transaction --routines --triggers --databases your_db_name > /www/backup/mysql/your_db_name_$(date +%Y%m%d_%H%M%S).sql

4. 备份所有数据库

mkdir -p /www/backup/mysql
mysqldump -uroot -p --single-transaction --routines --triggers --all-databases > /www/backup/mysql/all_databases_$(date +%Y%m%d_%H%M%S).sql

⚠️ 输入命令后会提示你输入 MySQL 的 root 密码。


📦 四、打包并下载备份文件(可选)

1. 将所有备份打包

cd /www/backup
tar -zcvf backup_all_$(date +%Y%m%d_%H%M%S).tar.gz site/ mysql/

2. 使用 SCP 或 SFTP 下载到本地

从你的本地电脑执行(非服务器上):

scp root@your_server_ip:/www/backup/backup_all_*.tar.gz ./backup/

或使用工具如 WinSCP、FileZilla 等通过 SFTP 连接下载 /www/backup/ 中的文件。


💡 五、额外建议

1. 检查宝塔服务是否运行

bt

然后选择:

  • 重启面板:8
  • 查看状态:16

可能只是面板卡住,重启即可恢复访问。

2. 防火墙/端口问题

确认服务器防火墙(安全组)放行了宝塔端口(默认 8888):

firewall-cmd --list-ports | grep 8888

如未开放:

firewall-cmd --permanent --add-port=8888/tcp
firewall-cmd --reload

✅ 总结:关键命令汇总

# 创建备份目录
mkdir -p /www/backup/site /www/backup/mysql

# 备份网站
tar -zcvf /www/backup/site/site_$(date +%Y%m%d_%H%M%S).tar.gz /www/wwwroot/

# 备份数据库(输入密码)
mysqldump -uroot -p --all-databases > /www/backup/mysql/all_$(date +%Y%m%d_%H%M%S).sql

# 打包所有备份
tar -zcvf /www/backup/backup_$(date +%Y%m%d_%H%M%S).tar.gz /www/backup/

# (本地执行)下载备份
scp root@your_server_ip:/www/backup/backup_*.tar.gz ./

如有进一步问题(例如忘记 MySQL 密码),也可以告诉我,我可以提供重置密码的方法。

云服务器