菜鸟科技网

Linux远程连接数据库命令有哪些?

在Linux系统中远程连接数据库是常见的运维操作,不同数据库类型(如MySQL、PostgreSQL、MongoDB等)使用的命令和工具略有差异,但核心流程均涉及客户端安装、参数配置及权限验证,以下将详细讲解主流数据库的远程连接命令、参数说明及注意事项,并辅以表格对比关键信息,最后附相关FAQs。

Linux远程连接数据库命令有哪些?-图1
(图片来源网络,侵删)

MySQL/MariaDB远程连接命令

MySQL和MariaDB作为关系型数据库,常用mysql命令行工具进行连接,基本语法为:
mysql -h 主机地址 -P 端口号 -u 用户名 -p密码 -D 数据库名
参数说明

  • -h:数据库服务器IP地址或域名(如168.1.100db.example.com);
  • -P:端口号,MySQL默认为3306,若使用非默认端口需明确指定;
  • -u:数据库用户名(如root或自定义用户);
  • -p:密码,若直接在命令中写-p密码,密码会明文显示在命令历史中,建议仅输入-p后回车,在交互界面输入密码更安全;
  • -D:指定连接后默认操作的数据库,可选参数。

示例

# 连接IP为192.168.1.100、端口3306的MySQL服务器,用户名为admin,密码通过交互输入
mysql -h 192.168.1.100 -P 3306 -u admin -p
# 连接并指定使用test_db数据库
mysql -h 192.168.1.100 -u admin -ptest_db -p123456

注意事项

  1. 确保数据库服务器允许远程连接(修改my.cnf配置文件,bind-address=0.0.0.0表示允许所有IP连接,或指定特定IP);
  2. 授权远程用户:登录数据库后执行GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED BY 'password';(表示所有IP,可替换为特定IP),并执行FLUSH PRIVILEGES;刷新权限;
  3. 防火墙需开放MySQL端口(如iptables -A INPUT -p tcp --dport 3306 -j ACCEPTfirewall-cmd --add-port=3306/tcp --permanent)。

PostgreSQL远程连接命令

PostgreSQL使用psql工具连接,基本语法为:
psql -h 主机地址 -p 端口号 -U 用户名 -d 数据库名 -W
参数说明

Linux远程连接数据库命令有哪些?-图2
(图片来源网络,侵删)
  • -h:数据库服务器地址;
  • -p:端口号,PostgreSQL默认为5432
  • -U:用户名;
  • -d:数据库名;
  • -W:强制提示输入密码,避免明文传递。

示例

# 连接PostgreSQL服务器,用户为postgres,密码交互输入
psql -h 192.168.1.100 -p 5432 -U postgres -W
# 连接并指定使用mydb数据库
psql -h 192.168.1.100 -U postgres -d mydb -W

注意事项

  1. 修改pg_hba.conf文件,添加远程连接规则(如host all all 0.0.0.0/0 md5,表示所有IP可通过md5加密密码连接);
  2. 修改postgresql.conf文件,设置listen_addresses = '*'
  3. 授权用户:执行CREATE USER admin WITH PASSWORD 'password';创建用户,GRANT ALL PRIVILEGES ON DATABASE mydb TO admin;授权;
  4. 防火墙开放5432端口。

MongoDB远程连接命令

MongoDB是NoSQL数据库,使用mongomongosh(新版)命令连接,语法为:
mongo 主机地址:端口号/数据库名 --username 用户名 --password 密码 --authenticationDatabase 认证数据库
参数说明

  • 主机地址:端口号:如168.1.100:27017,默认端口27017
  • /数据库名:指定连接的数据库,可选;
  • --username--password:认证信息;
  • --authenticationDatabase:认证数据库,通常为admin

示例(使用mongosh)

Linux远程连接数据库命令有哪些?-图3
(图片来源网络,侵删)
# 连接MongoDB服务器,认证数据库为admin
mongosh 192.168.1.100:27017 --username admin --password password --authenticationDatabase admin
# 连接并指定使用mydb数据库
mongosh 192.168.1.100:27017/mydb -u admin -p password --authenticationDatabase admin

注意事项

  1. 修改mongod.conf配置文件,设置bindIp: 0.0.0.0允许远程连接;
  2. 创建用户并授权:在admin数据库执行db.createUser({user: "admin", pwd: "password", roles: ["root"]})
  3. 防火墙开放27017端口。

主流数据库远程连接命令对比表

数据库类型 客户端工具 基本语法示例 默认端口 关键配置文件
MySQL/MariaDB mysql mysql -h 192.168.1.100 -P 3306 -u admin -p 3306 my.cnf (MySQL) 或 mariadb.cnf (MariaDB)
PostgreSQL psql psql -h 192.168.1.100 -p 5432 -U postgres -W 5432 postgresql.conf、pg_hba.conf
MongoDB mongosh mongosh 192.168.1.100:27017 --username admin --password password 27017 mongod.conf

通用注意事项

  1. 网络安全:避免使用公网IP直接暴露数据库,可通过VPN或内网穿透工具(如FRP)访问;
  2. 密码复杂度:设置强密码并定期更换,避免使用默认用户名(如MySQL的root);
  3. 连接超时:若连接频繁断开,可调整数据库的超时参数(如MySQL的wait_timeout);
  4. 日志记录:开启数据库日志,记录远程连接操作以便排查问题。

相关问答FAQs

Q1: 连接MySQL时提示“Access denied for user 'admin'@'192.168.1.101'”,如何解决?
A: 此错误通常为权限不足,需检查以下三点:

  1. 确认用户admin是否存在,若不存在需执行CREATE USER 'admin'@'%' IDENTIFIED BY 'password';创建;
  2. 确认用户是否有远程访问权限,执行GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%';FLUSH PRIVILEGES;
  3. 检查user表中Host字段是否为(允许所有IP)或指定IP(如168.1.%),可通过SELECT User, Host FROM mysql.user;查看。

Q2: PostgreSQL远程连接时提示“FATAL: no pg_hba.conf entry for host”,如何处理?
A: 该错误表明pg_hba.conf中未配置远程连接规则,解决步骤:

  1. 编辑pg_hba.conf文件(通常位于/var/lib/pgsql/data//etc/postgresql/版本号/main/),添加规则如host all all 192.168.1.0/24 md5(允许168.1.0/24网段通过md5密码连接);
  2. 重启PostgreSQL服务:systemctl restart postgresql
  3. 确认postgresql.conflisten_addresses设置为或'0.0.0.0',并重启服务生效。
分享:
扫描分享到社交APP
上一篇
下一篇