当前位置:首页 > 数据库 > 正文

命令行怎么切换数据库

命令行切换数据库,先登录MySQL等工具,用 USE 数据库名;语句即可 切换

是关于如何在命令行中切换不同类型数据库的详细说明,涵盖主流关系型和非关系型数据库的操作步骤及注意事项:

MySQL/MariaDB

  1. 登录服务器:打开终端并输入 mysql -u 用户名 -p(或简写为 mysql –user=用户名 –password),回车后系统会提示输入密码,若用户名与系统账户名一致,可直接使用 mysql -p

  2. 查看可用数据库列表:执行 SHOW DATABASES; 获取当前所有存在的数据库名称;

  3. 切换目标数据库:输入 USE 数据库名;USE mydatabase;),成功时会显示 “Database changed” 提示;

  4. 验证当前所在库:通过 SELECT DATABASE(); 确认已切换至目标库;

  5. 退出客户端:使用 EXIT; 或快捷键 Ctrl+D 返回Linux shell。

注意:切换仅对当前会话有效,新建连接需重复上述步骤,若目标库不存在,先用 CREATE DATABASE 库名; 创建。

PostgreSQL

  1. 直接指定目标库登录psql -U 用户名 -d 数据库名(首次连接即进入指定库);

  2. 先登录再切换:若未指定参数,则先以 psql -U 用户名 进入主界面,再执行 c 目标库名

  3. 查看当前库上下文:内置变量 conninfo 可显示连接信息,包括活跃的数据库名。

技巧:Tab键自动补全库名,提升输入效率。

MongoDB

  1. 基础连接方式mongo --username 用户名 --password 密码 --authenticationDatabase admin(认证阶段默认使用admin库);

  2. 精准定位目标库:添加 --db 目标库名 参数直接跳转,如 mongo --host localhost --port 27017 --db testdb

  3. 交互式切换:进入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的生产环境迁移到测试环境:

  1. 备份源库结构:mysqldump -u dev_user -p production_db > backup.sql
  2. 恢复至目标环境:mysql -u test_user -p test_db < backup.sql
  3. 批量执行校验脚本:将多个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,这些命令都会列出当前用户

0