要通过命令行打开并操作数据库,不同数据库系统(如MySQL、PostgreSQL、MongoDB、SQLite等)有不同的命令和参数,但核心逻辑都是通过客户端工具连接数据库服务,进而执行管理或查询操作,以下是详细步骤和注意事项,涵盖主流数据库的命令连接方法。
通用准备工作
在通过命令行连接数据库前,需确保以下条件满足:
- 安装数据库客户端工具:根据数据库类型安装对应的命令行客户端,如MySQL需安装
mysql-client
,PostgreSQL需安装postgresql-client
,MongoDB需安装mongosh
,SQLite自带sqlite3
命令(无需额外安装)。 - 确认数据库服务运行状态:数据库服务需已启动(如MySQL的
mysqld
、PostgreSQL的postgresql
、MongoDB的mongod
),可通过系统服务管理命令检查(如systemctl status mysql
)。 - 获取连接信息:包括数据库主机地址(
host
,默认为localhost
)、端口号(port
,MySQL默认3306、PostgreSQL默认5432、MongoDB默认27017)、用户名(user
)、密码(password
)及目标数据库名(database
)。
主流数据库命令连接方法
MySQL/MariaDB
MySQL是最常用的关系型数据库之一,通过mysql
命令连接。
基本命令格式:
mysql [选项] [数据库名] [用户名]
常用参数说明:
| 参数 | 作用 | 示例 |
|——|——|——|
| -h, --host
| 指定数据库服务器主机 | -h 192.168.1.100
|
| -P, --port
| 指定端口号 | -P 3306
|
| -u, --user
| 指定用户名 | -u root
|
| -p, --password
| 指定密码(建议交互输入,避免明文) | -p
(输入时隐藏密码) |
| -D, --database
| 连接后直接进入指定数据库 | -D test_db
|
| -e, --execute
| 直接执行SQL语句并退出(无需交互) | -e "SELECT * FROM users"
|
示例操作:
- 连接本地MySQL(默认用户root,需输入密码):
mysql -u root -p
- 连接远程MySQL(主机192.168.1.100,端口3306,用户admin):
mysql -h 192.168.1.100 -P 3306 -u admin -p
- 直接执行查询并退出:
mysql -u root -p test_db -e "SELECT COUNT(*) FROM users;"
退出数据库:在mysql>
提示符下输入exit;
或quit;
,或按Ctrl+D
。
PostgreSQL
PostgreSQL是功能强大的开源关系型数据库,使用psql
命令连接。
基本命令格式:
psql [选项] [数据库名] [用户名]
常用参数说明:
| 参数 | 作用 | 示例 |
|——|——|——|
| -h, --host
| 指定主机 | -h localhost
|
| -p, --port
| 指定端口 | -p 5432
|
| -U, --username
| 指定用户名 | -U postgres
|
| -d, --dbname
| 指定数据库名 | -d mydb
|
| -W, --password
| 强制提示输入密码 | -W
|
示例操作:
- 连接本地PostgreSQL(默认用户postgres):
psql -U postgres -d mydb
- 连接远程PostgreSQL(需输入密码):
psql -h 192.168.1.100 -p 5432 -U admin -W mydb
特殊功能:
psql -l
:列出所有数据库;c 数据库名
:切换数据库;d 表名
:查看表结构;q
:退出。
MongoDB
MongoDB是流行的NoSQL文档数据库,使用mongosh
(新版)或mongo
(旧版)连接。
基本命令格式:
mongosh [连接字符串] [数据库名]
连接字符串格式:mongodb://[用户名:密码@]主机:端口/数据库名
常用参数说明:
| 参数 | 作用 | 示例 |
|——|——|——|
| --host, -h
| 指定主机 | --host localhost
|
| --port, -p
| 指定端口 | --port 27017
|
| --username, -u
| 指定用户名 | --username admin
|
| --password, --pwd
| 指定密码 | --password 123456
|
| --authenticationDatabase
| 指定认证数据库 | --authenticationDatabase admin
|
示例操作:
- 连接本地MongoDB(默认端口27017,进入test数据库):
mongosh
- 连接远程MongoDB(用户admin,密码123456,认证库admin):
mongosh "mongodb://admin:123456@192.168.1.100:27017/" --authenticationDatabase admin
常用命令:
show dbs
:列出所有数据库;use 数据库名
:切换数据库;db.集合名.find()
:查询数据;exit
或Ctrl+C
:退出。
SQLite
SQLite是轻量级嵌入式数据库,无需服务,直接通过sqlite3
命令操作数据库文件。
基本命令格式:
sqlite3 [数据库名.db]
示例操作:
- 打开/创建数据库(文件名为
test.db
):sqlite3 test.db
- 执行SQL语句(需以分号结尾):
sqlite> CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT); sqlite> INSERT INTO users (name) VALUES ('Alice');
特殊命令:
.tables
:列出所有表;.schema 表名
:查看表结构;.exit
:退出数据库。
常见问题排查
-
连接失败提示“Access denied”:
- 检查用户名、密码是否正确;
- 确认用户是否有远程访问权限(如MySQL需执行
GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'password';
并刷新权限FLUSH PRIVILEGES;
); - 检查防火墙是否开放数据库端口(如Linux的
ufw
命令:ufw allow 3306
)。
-
“Can’t connect to MySQL server on ‘xxx’”:
- 确认数据库服务是否启动(
systemctl start mysql
); - 检查主机地址和端口是否正确(默认
localhost
仅支持本地连接,远程需用实际IP); - 确认网络是否可达(如
ping
主机地址)。
- 确认数据库服务是否启动(
数据库命令连接对比表
数据库 | 连接命令示例 | 常用参数 | 退出命令 |
---|---|---|---|
MySQL | mysql -u root -p |
-h, -P, -D, -e |
exit; |
PostgreSQL | psql -U postgres -d mydb |
-h, -p, -W, -l |
q |
MongoDB | mongosh "mongodb://localhost:27017/" |
--host, --port, --username |
exit |
SQLite | sqlite3 test.db |
无(直接指定文件名) | .exit |
FAQs
问题1:连接MySQL时提示“mysql: command not found”怎么办?
解答:这表明系统未安装MySQL客户端工具,可通过以下方式安装:
- Ubuntu/Debian:
sudo apt update && sudo apt install mysql-client
- CentOS/RHEL:
sudo yum install mysql-community-client
- macOS(使用Homebrew):
brew install mysql
安装完成后,重新执行连接命令即可。
问题2:如何在PostgreSQL中查看当前数据库的所有表?
解答:在psql
交互界面中,使用以下命令:
dt
:列出当前数据库的所有表(包括系统表);dt only
:仅列出用户创建的表(排除系统表);- 若需查看特定表的详细结构,使用
d 表名
。
查看当前数据库所有用户表:psql> dt only
。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/15594.html