命令行怎么切换数据库
- 数据库
- 2025-07-31
- 3
USE 数据库名;
语句即可
切换
是关于如何在命令行中切换不同类型数据库的详细说明,涵盖主流关系型和非关系型数据库的操作步骤及注意事项:
MySQL/MariaDB
-
登录服务器:打开终端并输入
mysql -u 用户名 -p
(或简写为mysql –user=用户名 –password
),回车后系统会提示输入密码,若用户名与系统账户名一致,可直接使用mysql -p
; -
查看可用数据库列表:执行
SHOW DATABASES;
获取当前所有存在的数据库名称; -
切换目标数据库:输入
USE 数据库名;
(USE mydatabase;
),成功时会显示 “Database changed” 提示; -
验证当前所在库:通过
SELECT DATABASE();
确认已切换至目标库; -
退出客户端:使用
EXIT;
或快捷键Ctrl+D
返回Linux shell。
️ 注意:切换仅对当前会话有效,新建连接需重复上述步骤,若目标库不存在,先用
CREATE DATABASE 库名;
创建。
PostgreSQL
-
直接指定目标库登录:
psql -U 用户名 -d 数据库名
(首次连接即进入指定库); -
先登录再切换:若未指定参数,则先以
psql -U 用户名
进入主界面,再执行c 目标库名
; -
查看当前库上下文:内置变量
conninfo
可显示连接信息,包括活跃的数据库名。
技巧:Tab键自动补全库名,提升输入效率。
MongoDB
-
基础连接方式:
mongo --username 用户名 --password 密码 --authenticationDatabase admin
(认证阶段默认使用admin库); -
精准定位目标库:添加
--db 目标库名
参数直接跳转,如mongo --host localhost --port 27017 --db testdb
; -
交互式切换:进入Shell后运行
use(‘new_db’)
,注意此处需用单引号包裹库名以避免语法错误。
ℹ️ MongoDB采用分片架构时,建议通过连接字符串明确指定节点地址。
SQLite
由于其文件型特性,只需通过文件路径即可加载数据库:sqlite3 /path/to/database.db
,无需认证流程,特别适合本地快速测试,若文件不存在会自动创建新库。
Redis
作为键值存储系统,其命令行操作更简洁:redis-cli -h 主机IP -p 端口号
,通过 SELECT DB索引号
切换数据库(默认共16个逻辑库,编号0~15)。SELECT 1
切换至第二个数据库。
通用原则与异常处理
场景 | 解决方案 |
---|---|
忘记密码 | MySQL可尝试重置root密码;PostgreSQL检查pg_hba.conf配置 |
权限不足 | 执行 SHOW GRANTS FOR '用户'@'主机'; 查看权限分配,必要时联系DBA授权 |
网络不通 | 确保防火墙开放对应端口(MySQL默认3306,PostgreSQL默认5432) |
字符编码问题 | 在连接命令中增加 --default-character-set=utf8mb4 (适用于MySQL) |
客户端版本不兼容 | 更新至与服务器匹配的版本,尤其注意Major Version一致性 |
典型工作流示例
假设需要从MySQL的生产环境迁移到测试环境:
- 备份源库结构:
mysqldump -u dev_user -p production_db > backup.sql
; - 恢复至目标环境:
mysql -u test_user -p test_db < backup.sql
; - 批量执行校验脚本:将多个SQL文件合并导入(
source checklist.sql
)。
FAQs
Q1: 如果提示“Unknown database”,该怎么办?
答:首先确认数据库真实存在(拼写正确且大小写敏感),若不存在则需要先创建,对于权限受限的情况,请联系管理员赋予相应访问权限,某些系统中可能需要刷新权限缓存(如MySQL执行 FLUSH PRIVILEGES;
)。
Q2: 如何查看当前可用的所有数据库?
答:不同数据库有特定命令:MySQL/MariaDB使用 SHOW DATABASES;
;PostgreSQL可通过元查询 SELECT datname FROM pg_database;
;MongoDB则直接运行 show dbs
,这些命令都会列出当前用户