Ubuntu安装配置MySQL、Python、Nginx完整教程
本文详细记录了在 Ubuntu 系统中安装与配置 MySQL 数据库、Python 运行环境及 Nginx 服务器的完整流程。涵盖服务状态检查、依赖安装、Root 用户权限与远程访问配置、防火墙端口放行,以及 Nginx 反向代理与安全证书的基础设置,附带常见连通性问题的排错指南。
第一步:安装与基础配置 MySQL
部署 Web 或数据应用前,需确保关系型数据库可用。以下为 Ubuntu 下的标准操作流程。
第1步:检查并确认安装状态
通过 systemd 查询服务状态。若已安装并运行,终端将输出带有 active (running) 的服务日志;若未安装,则提示 Unit mysql.service could not be found.:
sudo systemctl status mysql
第2步:执行安装并启动服务
使用 apt 源一键部署服务器端程序,随后启动服务并验证运行状态。默认监听 3306 端口:
sudo apt-get install mysql-server
sudo systemctl start mysql
sudo systemctl status mysql
第3步:初始化 Root 账户与认证方式
风险提醒:修改数据库系统表权限会影响本地安全策略,请妥善保管新密码并评估业务连接池配置。首次登录通常无需密码直接回车,进入交互界面后切换至内置库查看用户插件类型,并将认证方式改为兼容性更广的 mysql_native_password:
mysql -u root -p
USE mysql;
SELECT host, user, plugin FROM user;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的新密码';
FLUSH PRIVILEGES;
注:MySQL 8.0+ 版本建议使用新建独立账号替代修改 Root 主机名,以符合最小权限原则。
第4步:开放远程访问与防火墙
默认仅允许本机登录。如需使用 Navicat 等外部工具连接,需调整绑定地址并放行端口:
# 注释配置文件中的 localhost 绑定限制
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
# 找到 bind-address = 127.0.0.1 和 mysqlx-bind-address = 127.0.0.1,行首加 # 注释
重启服务使配置生效,并通过 ufw 放行 3306 端口(如使用云服务器,请同步在控制台安全组中开放该端口):
sudo systemctl restart mysql
sudo ufw allow 3306/tcp
sudo ufw status
第二步:部署 Python 开发环境
自 Ubuntu 20.04 起系统已移除 Python 2,现主要使用 Python 3 配合 pip 包管理器。
第1步:核对环境版本
命令行输出明确版本号即表示已就绪,显示 Command not found 则为缺失:
python3 --version
python --version
第2步:安装解释器与依赖管理工具
同步索引缓存并安装核心组件。安装完毕后可通过 pip3 --version 验证环境完整性:
sudo apt update
sudo apt install python3 python3-pip
第三步:配置 Nginx 反向代理与站点
Nginx 常用于静态资源托管或作为后端应用(如 Gunicorn/Django)的流量入口。
第1步:安装并启用服务
安装官方源提供的稳定版,注册开机自启任务,并通过浏览器访问 http://localhost 看到默认欢迎页即代表 Web 服务正常:
sudo apt install nginx
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx
第2步:编写 Server 转发规则
编辑默认站点配置文件,以 HTTPS 代理内网业务端口为例。示例展示了 SSL 证书挂载、跨域响应头设置及静态文件缓存策略:
sudo vim /etc/nginx/sites-enabled/default
插入如下配置结构(路径与域名请按需替换):
server {
listen 443 ssl;
server_name your_domain.com;
ssl_certificate /etc/nginx/cert/domain_cert.pem;
ssl_certificate_key /etc/nginx/cert/domain_key.key;
ssl_session_cache shared:SSL:1m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://127.0.0.1:8001;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
client_max_body_size 100M;
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization, X-Requested-With';
add_header 'Access-Control-Allow-Credentials' 'true';
}
location /static {
alias /usr/file/images/;
expires 30d;
client_max_body_size 100M;
}
}
第3步:语法校验与服务重载
任何配置修改后必须先测试,避免语法错误导致全站不可用。确认无误后平滑重载进程:
nginx -t
service nginx reload
关键步骤完成判断与排错
各组件部署成功后,可通过以下现象快速验收:
- MySQL: 外部客户端输入账号密码可成功建立会话,无
Host is blocked报错。 - Python: 执行
python3 -c "print('ok')"正常打印结果,pip3 list展示已安装包列表。 - Nginx: 浏览器请求对应域名返回后端接口数据,控制台 Network 面板可见正确的 CORS 响应头。
若遇连接超时或 502 Bad Gateway,请按顺序排查:一是确认底层应用是否已监听指定端口(使用 ss -tlnp 查看),二是核对 iptables 或云厂商安全组策略,三是检查 Nginx 错误日志 /var/log/nginx/error.log。
以上就是Ubuntu安装配置MySQL、Python、Nginx的详细过程,更多关于Linux服务器环境搭建的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













