服务器部署指南
购买服务器实例
网上教程很多,这里就不介绍了。
环境安装
Node.js 安装
bash
yum install nodejs
Nginx 安装与配置
安装 Nginx
bash
yum install nginx
启动 Nginx 服务
bash
systemctl start nginx.service
Nginx 常用命令
bash
# 停止 Nginx 服务
systemctl stop nginx.service
# 重启 Nginx 服务
systemctl restart nginx.service
# 重新加载 Nginx 配置文件,然后重启 Nginx
systemctl reload nginx.service
# 查看服务状态
systemctl status nginx.service
# 设置开机自启动
systemctl enable nginx.service
# 停止开机自启动
systemctl disable nginx.service
MySQL 安装与配置(CentOS 7.x)
安装步骤
bash
# 安装 MySQL 客户端(可选,如已安装可跳过)
yum install mysql
# 安装 MySQL 开发库(可选,如已安装可跳过)
yum install mysql-devel
# 下载 MySQL 官方源
wget http://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm
# 安装官方源
rpm -ivh mysql80-community-release-el7-5.noarch.rpm
# 安装 MySQL 社区版服务器
yum install mysql-community-server
注意: 如果已经安装了 MySQL 客户端和开发库,前两个命令可以省略。如果已经添加了 MySQL 官方源,第三个命令也可以省略。
启动和配置 MySQL 服务
bash
# 启动 MySQL 后台服务
systemctl start mysqld
# 设置随系统启动
systemctl enable mysqld
查看 MySQL 服务状态
bash
# 方式一:查看服务状态(active (running) 表示启动成功)
systemctl status mysqld
# 方式二:查看进程
ps -ef | grep mysql
MySQL 8 初始配置
获取初始密码
bash
cat /var/log/mysqld.log | grep password
修改 root 密码
sql
alter user 'root'@'localhost' identified by '这里填你要的密码';
配置远程连接
在远程服务器上执行以下命令,以便在本地使用 Navicat 等工具连接:
sql
use mysql;
-- 查看当前连接权限(默认 root 用户只能 localhost 连接)
select host, user from user;
-- 修改 root 用户权限,允许远程连接
update user set host = '%' where user = 'root';
-- 刷新权限配置
FLUSH PRIVILEGES;
重要: 修改完成后还需要在服务器安全组中配置 3306 端口的访问权限。
Nginx 服务配置
编辑 /etc/nginx/nginx.conf
文件,添加以下服务配置:
nginx
server {
listen 8080;
listen [::]:8080;
server_name _;
root /usr/share/nginx/html;
# 加载默认服务器块的配置文件
include /etc/nginx/default.d/*.conf;
# 错误页面配置
error_page 404 /404.html;
location = /404.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
# 静态文件服务配置
location / {
root /home/vue3-cloud-music;
try_files $uri $uri/ /index.html;
index index.html;
}
}
数据库迁移
准备工作
确保网络连通性
确认本地能够正常连接到服务器 MySQL权限检查
确认服务器 MySQL 用户具有创建数据库和导入数据的权限备份现有数据(如果服务器已有数据)
bashmysqldump -u root -p --databases 数据库名 > backup_$(date +%Y%m%d_%H%M%S).sql
迁移方式
方式一:使用 Navicat(推荐)
创建目标数据库
在服务器 MySQL 中创建和本地同名的数据库sqlCREATE DATABASE 数据库名 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
导出本地数据
- 在 Navicat 中选择本地数据库
- 右键选择"转储 SQL 文件" → "数据和结构"
- 保存为
.sql
文件
导入到服务器
- 在 Navicat 中连接服务器 MySQL
- 选择目标数据库
- 右键选择"运行 SQL 文件"
- 选择之前导出的文件
方式二:使用命令行
导出本地数据库
bash# 导出结构和数据 mysqldump -u username -p database_name > database_backup.sql # 仅导出结构 mysqldump -u username -p --no-data database_name > database_structure.sql # 仅导出数据 mysqldump -u username -p --no-create-info database_name > database_data.sql
上传到服务器
bashscp database_backup.sql username@server_ip:/tmp/
在服务器上创建数据库并导入
bash# 登录服务器 MySQL mysql -u root -p # 创建数据库 CREATE DATABASE database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; # 退出 MySQL,导入数据 exit mysql -u root -p database_name < /tmp/database_backup.sql
常见问题处理
字符编码问题
确保导出时指定正确的字符集:bashmysqldump -u username -p --default-character-set=utf8mb4 database_name > backup.sql
大文件导入超时
修改 MySQL 配置或分批导入:sqlSET global net_buffer_length=1000000; SET global max_allowed_packet=1000000000;
权限不足错误
确保用户具有足够权限:sqlGRANT ALL PRIVILEGES ON database_name.* TO 'username'@'%'; FLUSH PRIVILEGES;
Navicat 多查询问题
如果在 Navicat 中导入时出现错误,可以尝试:- 取消"在每个运行中运行多个查询"选项
- 或者将大的 SQL 文件拆分成小文件分批执行
验证迁移结果
检查数据完整性
sql-- 检查表数量 SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = 'database_name'; -- 检查数据行数 SELECT table_name, table_rows FROM information_schema.tables WHERE table_schema = 'database_name';
测试应用连接
确保应用程序能够正常连接并操作数据库