Skip to content

Ubuntu - 安装 MySQL 和 Python

Python 是一种多功能的编程语言,而 MySQL 是一种流行的关系型数据库管理系统。两者都在 Linux 系统上广泛用于开发和服务器应用程序。以下是在 Ubuntu 上安装和设置它们的方法。

现代的 Ubuntu 版本预装了 Python 3。对于新项目来说,它是推荐使用的版本。

步骤 1:检查 Python 3 版本。打开终端 (Ctrl+Alt+T) 并输入:

python3 -V

这将显示已安装的 Python 3 版本(例如,Python 3.10.x)。

注意:命令 python -V 可能指向 Python 2(如果因遗留原因仍然安装)或找不到。请始终使用 python3 来运行 Python 3。

步骤 2:安装 Pip (Python 包管理器) 和 venv (虚拟环境工具)。虽然 Python 3 已预装,但用于管理 Python 包的 pip 和用于创建独立 Python 环境的 venv 可能未安装。安装它们是最佳实践:

sudo apt update
sudo apt install python3-pip python3-venv

步骤 3:使用 Python 虚拟环境(强烈推荐)。虚拟环境允许您为不同的项目单独管理依赖项,从而防止冲突。

为项目创建一个虚拟环境:

# 导航到您的项目目录
cd my_python_project
# 创建一个名为 'env' 的虚拟环境(或您喜欢的任何名称)
python3 -m venv env
# 激活虚拟环境
# 在 Linux/macOS 上:
source env/bin/activate
# 在 Windows (Git Bash 或 WSL) 上:
# source env/Scripts/activate
# 您的终端提示符现在会显示 (env),表示已激活。
# 现在,当您使用 'pip install <package>' 时,它将安装到这个环境中。
# 完成后停用环境:
deactivate

应用场景:使用 Django 开发 Web 应用程序。您可以创建一个虚拟环境,激活它,然后 pip install django 为该项目专门获取 Django 框架。

MySQL 是一个强大的数据库服务器。此外,MariaDB(MySQL 的一个社区开发的派生版本)也是一个流行的可直接替代选项,并且通常在 Ubuntu 软件源中可用。

步骤 1:更新软件包列表。

sudo apt update

步骤 2:安装 MySQL 服务器软件包。

sudo apt install mysql-server

在安装过程中,系统可能会提示您为 MySQL 设置一个 root 用户密码,或者默认情况下会使用 auth_socket 插件为 root 用户配置认证(这意味着系统 root 用户可以在没有密码的情况下访问 MySQL 的 root 用户)。

步骤 3:保护您的 MySQL 安装安全。这是提高安全性的关键步骤。

sudo mysql_secure_installation

此脚本将引导您完成几个与安全相关的选项:

  • VALIDATE PASSWORD COMPONENT(密码验证组件):有助于强制使用强密码。您可以选择启用或不启用。
  • Change the root password?(更改 root 密码?):如果您尚未设置或想更改密码。如果对 root 用户使用了 auth_socket,您可能需要以不同的方式管理 root 访问(例如,使用 sudo mysql)。
  • Remove anonymous users?(删除匿名用户?):是的,为了安全。
  • Disallow root login remotely?(禁止 root 远程登录?):是的,强烈推荐。Root 用户应仅从 localhost 连接。
  • Remove test database and access to it?(删除测试数据库及对其的访问?):是的,生产环境中不需要它。
  • Reload privilege tables now?(现在重新加载权限表?):是的,立即应用更改。

根据您的安全需求回答这些提示。默认设置通常对于更安全的配置是好的。

步骤 4:检查 MySQL 服务状态。

sudo systemctl status mysql

您应该看到服务是 active (正在运行) 的。您还可以使用 sudo systemctl start mysql、sudo systemctl stop mysql、sudo systemctl enable mysql(用于开机启动)。

步骤 5:连接到 MySQL。以 MySQL root 用户身份连接:

# 如果为 root 用户启用了 auth_socket(常见默认设置):
sudo mysql
# 如果您为 root 设置了密码并且 auth_socket 不是主要认证方式:
mysql -u root -p

连接后,您可以执行 SQL 命令。输入 exit 或 quit 离开 MySQL 提示符。

常见学习障碍:MySQL root 用户认证。理解 auth_socket 插件与传统密码认证之间的区别可能会令人困惑。对于 auth_socket,系统 root 用户可以通过 sudo mysql 在没有密码的情况下以 root 身份连接到 MySQL。如果您需要为 root 用户设置密码认证,您可能需要在 MySQL 内部更改 root 用户的认证方法:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_new_password'; FLUSH PRIVILEGES;

附加资源:官方 MySQL 文档 (dev.mysql.com/doc/) 和 Python 文档 (docs.python.org/3/) 是非常有价值的资源。