# 多数据库交互脚本 一个支持多种数据库的 Python 交互式命令行工具,可以方便地连接和操作各种数据库。 ## 支持的数据库 - ✅ MySQL - ✅ MongoDB - ✅ Redis - ✅ SQLite - ✅ PostgreSQL ## 系统支持 - ✅ Windows - ✅ Linux - ✅ macOS - ✅ Termux (Android) ## 安装依赖 ```bash # 安装所有依赖 pip install -r requirements.txt # 或者单独安装需要的数据库驱动 pip install pymysql # MySQL pip install pymongo # MongoDB pip install redis # Redis pip install psycopg2-binary # PostgreSQL # SQLite 是 Python 内置模块,无需安装 ``` ## 使用方法 ### 1. 启动脚本 ```bash python main.py ``` ### 2. 选择数据库类型 启动后会提示选择数据库类型: ``` 请选择数据库类型: 1. MySQL 2. MongoDB 3. Redis 4. SQLite 5. PostgreSQL ``` ### 3. 输入连接信息 根据提示输入数据库的连接信息(主机、端口、用户名、密码等)。 ### 4. 执行命令 连接成功后,就可以输入相应的命令进行数据库操作。 ## 命令示例 ### MySQL / PostgreSQL / SQLite ```sql -- 查询 SELECT * FROM users; SELECT name, age FROM users WHERE age > 18; -- 插入 INSERT INTO users (name, age) VALUES ('张三', 25); -- 更新 UPDATE users SET age = 26 WHERE name = '张三'; -- 删除 DELETE FROM users WHERE name = '张三'; -- 创建表 CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER); ``` ### MongoDB MongoDB 使用 JSON 格式的命令: ```json // 查询所有文档 {"collection": "users", "operation": "find", "query": {}} // 条件查询 {"collection": "users", "operation": "find", "query": {"age": {"$gt": 18}}} // 插入文档 {"collection": "users", "operation": "insert", "document": {"name": "张三", "age": 25}} // 更新文档 {"collection": "users", "operation": "update", "query": {"name": "张三"}, "update": {"$set": {"age": 26}}} // 删除文档 {"collection": "users", "operation": "delete", "query": {"name": "张三"}} // 统计数量 {"collection": "users", "operation": "count", "query": {}} ``` ### Redis ``` # 字符串操作 SET name 张三 GET name DEL name # 哈希操作 HSET user:1 name 张三 HSET user:1 age 25 HGET user:1 name HGETALL user:1 # 列表操作 LPUSH mylist item1 item2 item3 LRANGE mylist 0 -1 # 集合操作 SADD myset member1 member2 SMEMBERS myset # 查询所有键 KEYS * # 测试连接 PING ``` ## 内置命令 - `help` - 显示帮助信息 - `connect` - 连接到数据库 - `disconnect` - 断开数据库连接 - `status` - 查看连接状态 - `switch ` - 切换数据库类型 (mysql/mongodb/redis/sqlite/postgres) - `quit` 或 `exit` - 退出程序 ## 文件说明 - `main.py` - 主程序入口 - `mysql.py` - MySQL 数据库操作模块 - `mongodb.py` - MongoDB 数据库操作模块 - `redis.py` - Redis 数据库操作模块 - `sqlite.py` - SQLite 数据库操作模块 - `postgres.py` - PostgreSQL 数据库操作模块 - `requirements.txt` - 依赖包列表 ## 注意事项 1. 首次使用前请确保已安装相应的数据库驱动 2. SQLite 会在当前目录创建数据库文件 3. 确保数据库服务已启动并可以访问 4. 使用完毕后建议执行 `disconnect` 命令断开连接 ## 常见问题 ### Q: 连接失败怎么办? A: 请检查: - 数据库服务是否已启动 - 主机地址和端口是否正确 - 用户名和密码是否正确 - 防火墙是否允许连接 ### Q: Redis 连接时提示 "module 'redis' has no attribute 'Redis'" 怎么办? A: 这个问题已经修复。如果仍然遇到,请: 1. 确保安装了正确的 redis 包:`pip install redis` 2. 检查是否有其他名为 redis.py 的文件冲突 3. 运行测试脚本检查依赖:`python test_import.py` ### Q: 如何检查依赖是否正确安装? A: 运行测试脚本: ```bash python test_import.py ``` 这将检查所有必需的数据库驱动是否正确安装。 ### Q: 如何在 Termux 中使用? A: 在 Termux 中需要先安装 Python 和必要的依赖: ```bash pkg install python pkg install build-essential # 编译某些包需要 pip install -r requirements.txt ``` ### Q: 如何切换数据库? A: 使用 `switch <数据库类型>` 命令,例如: ``` switch mysql switch mongodb ``` ### Q: MongoDB 需要用户认证怎么办? A: 在配置时会询问是否需要认证,选择 y 后输入用户名和密码即可。 ## 许可证 MIT License