首页主机资讯Ubuntu Python数据库连接怎样配置

Ubuntu Python数据库连接怎样配置

时间2025-12-16 21:49:04发布访客分类主机资讯浏览1343
导读:Ubuntu 下 Python 数据库连接配置指南 一 准备与安装 更新软件源并安装数据库(按需其一或多项) MySQL:sudo apt update && sudo apt install mysql-server...

Ubuntu 下 Python 数据库连接配置指南

一 准备与安装

  • 更新软件源并安装数据库(按需其一或多项)
    • MySQL:sudo apt update & & sudo apt install mysql-server
    • PostgreSQL:sudo apt update & & sudo apt install postgresql postgresql-contrib
    • SQLite:通常系统自带,如需头文件可 sudo apt install sqlite3 libsqlite3-dev
  • 安装 Python 驱动(与所用数据库匹配)
    • MySQL:pip install mysql-connector-pythonPyMySQL
    • PostgreSQL:pip install psycopg2psycopg2-binary
    • SQLite:Python 内置 sqlite3 模块,无需额外安装
  • 初始化与安全(如安装的是 MySQL)
    • 执行 sudo mysql_secure_installation 完成基础加固(设置 root 密码、移除匿名用户等)

二 数据库与账户配置

  • PostgreSQL
    • 切换到 postgres 系统用户并进入 psql:sudo -u postgres psql
    • 在 psql 中创建数据库与用户并授权:
      • CREATE DATABASE yourdatabase;
      • CREATE USER yourusername WITH ENCRYPTED PASSWORD ‘yourpassword’;
      • GRANT ALL PRIVILEGES ON DATABASE yourdatabase TO yourusername;
      • \q
  • MySQL
    • 登录 MySQL:mysql -u root -p
    • 创建数据库:CREATE DATABASE yourdatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    • 创建用户并授权(示例仅允许本机):
      • CREATE USER ‘yourusername’@‘localhost’ IDENTIFIED BY ‘yourpassword’;
      • GRANT ALL PRIVILEGES ON yourdatabase.* TO ‘yourusername’@‘localhost’;
      • FLUSH PRIVILEGES;
    • 如需远程访问,创建 ‘yourusername’@‘%’ 并配置防火墙/云安全组放行 3306;MySQL 8 常见认证插件问题可用:ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘yourpassword’;

三 连接示例

  • MySQL(mysql-connector-python)
    • import mysql.connector from mysql.connector import Error try: conn = mysql.connector.connect( host=‘localhost’, port=3306, database=‘yourdatabase’, user=‘yourusername’, password=‘yourpassword’, charset=‘utf8mb4’ ) cur = conn.cursor() cur.execute(“SELECT DATABASE(); ”) print(cur.fetchone()) except Error as e: print(“MySQL error:”, e) finally: if conn.is_connected(): cur.close(); conn.close()
  • PostgreSQL(psycopg2)
    • import psycopg2 try: conn = psycopg2.connect( dbname=‘yourdatabase’, user=‘yourusername’, password=‘yourpassword’, host=‘localhost’, port=5432 ) cur = conn.cursor() cur.execute(“SELECT version(); ”) print(cur.fetchone()) except Exception as e: print(“PostgreSQL error:”, e) finally: if conn: cur.close(); conn.close()
  • SQLite(内置模块)
    • import sqlite3 conn = sqlite3.connect(‘yourdatabase.db’) cur = conn.cursor() cur.execute(‘’‘CREATE TABLE IF NOT EXISTS t(id INTEGER PRIMARY KEY, name TEXT)’‘’) conn.commit() cur.execute(“INSERT INTO t(name) VALUES (?)”, (“Alice”,)) for row in cur.execute(“SELECT * FROM t”): print(row) conn.close()

四 常见问题与排查

  • Access denied / plugin auth_socket
    • 现象:root 本地连不上或仅系统用户可连
    • 处理:ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘newpass’; 或创建专用用户并授予目标库权限
  • 1044 Access denied for user
    • 现象:指定了数据库名就连不上
    • 处理:GRANT ALL PRIVILEGES ON db_name.* TO ‘user’@‘host’; FLUSH PRIVILEGES;
  • 2002 Can’t connect to MySQL server
    • 现象:连接被拒绝或超时
    • 处理:确认服务运行 sudo systemctl status mysql;检查端口 3306 监听与防火墙/云安全组;远程连接需使用正确主机与账户
  • 字符集乱码
    • 处理:库/表/连接统一使用 utf8mb4,连接参数 charset=‘utf8mb4’

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu Python数据库连接怎样配置
本文地址: https://pptw.com/jishu/773254.html
Ubuntu Python性能如何优化提升 Ubuntu Python代码风格怎样规范

游客 回复需填写必要信息