MySQL 无法使用DBeaver连接MariaDB

MySQL 无法使用DBeaver连接MariaDB

在本文中,我们将介绍当我们使用DBeaver连接MariaDB时遇到的问题,以及可能的解决方法。

阅读更多:MySQL 教程

问题描述

当我们尝试使用DBeaver连接MariaDB时,可能会遇到如下错误信息:

Could not connect to address=(host=127.0.0.1)(port=3306)
java.net.ConnectException: Connection refused (Connection refused)

这意味着DBeaver无法连接MariaDB。这可能是因为MariaDB没有在默认端口3306上运行,或者我们没有正确配置连接参数。

解决方法

确认MariaDB正在运行

首先,我们需要确认MariaDB正在运行。我们可以使用以下命令检查MariaDB的状态:

systemctl status mariadb

如果MariaDB正在运行,输出应该类似于以下内容:

● mariadb.service - MariaDB 10.3.27 database server
  Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor prese>
  Active: active (running) since Tue 2021-06-08 08:53:37 UTC; 22h ago
    Docs: man:mariadbd(8)
          https://mariadb.com/kb/en/library/systemd/
 Main PID: 1041 (mariadbd)
    Tasks: 39 (limit: 4617)
  Memory: 435.3M
     CPU: 3min 53.727s
  CGroup: /system.slice/mariadb.service
          └─1041 /usr/sbin/mariadbd --daemonize --pid-file=/run/mariadb/mariadb>

如果MariaDB没有运行,我们可以使用以下命令来启动它:

systemctl start mariadb

确认连接参数

接下来,我们需要确认我们已经正确配置了连接参数。我们可以尝试从MariaDB shell中连接MariaDB:

mysql -u <username> -p <password> -h <hostname> -P <port>

其中,<username>是我们用来连接MariaDB的用户名,<password>是我们用来连接MariaDB的密码,<hostname>是MariaDB的主机地址,<port>是MariaDB用于接受连接的端口。

例如,如果我们使用的用户名是root、密码是password,主机地址是localhost,端口是3306,我们可以使用以下命令来连接MariaDB:

mysql -u root -p password -h localhost -P 3306

如果我们能够成功连接MariaDB,我们应该可以看到类似于以下内容的输出:

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 113
Server version: 10.3.27-MariaDB-0ubuntu0.20.04.1 Ubuntu 20.04

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

如果我们无法连接MariaDB,我们需要确认我们使用的连接参数是否正确。特别地,我们需要确认我们使用的主机地址、端口和用户名是否正确。我们还需要确认我们使用的密码是否正确。

确认MariaDB在正确的端口上运行

最后,我们需要确认MariaDB正在正确的端口上运行。默认情况下,MariaDB会在3306端口上运行。但是,如果我们已经将MariaDB配置为在不同的端口上运行,则我们需要使用正确的端口启动DBeaver。

我们可以使用以下命令查找MariaDB使用的端口:

grep -i 'port' /etc/mysql/mariadb.conf.d/50-server.cnf

我们应该可以看到类似于以下内容的输出:

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address           = 127.0.0.1
port                    = 3306

我们可以看到在这个例子中,MariaDB的端口为3306。如果我们已经将MariaDB配置为在不同的端口上运行,则需要使用正确的端口号启动DBeaver。

我们可以在DBeaver的连接设置中指定MariaDB的端口号。在DBeaver的连接编辑器中,我们可以在“常规”选项卡下找到“端口”字段。在此字段中,我们应该指定MariaDB使用的端口号。例如,如果MariaDB在端口号8888上运行,则我们应该将端口号设置为8888。

检查防火墙设置

如果我们已经尝试上述方法但仍然无法连接MariaDB,则可能是由于防火墙阻止了我们的连接。我们需要确认防火墙是否允许我们使用MariaDB端口连接到MariaDB。具体来说,我们需要确认防火墙已经允许MariaDB端口通过。

在Ubuntu系统中,我们可以使用以下命令检查防火墙的状态:

sudo ufw status

如果防火墙激活,输出应该类似于以下内容:

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
Mariadb                    ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
Mariadb (v6)               ALLOW       Anywhere (v6)

以上内容显示防火墙已经允许MariaDB端口通过。如果没有看到类似于其它Allow项的输出,则需要配置防火墙以允许MariaDB端口通过。通常,可以使用以下命令打开防火墙:

sudo ufw allow <port>/tcp

其中,<port>是指MariaDB端口。例如,如果MariaDB在端口号8888上运行,则我们应该使用以下命令打开防火墙:

sudo ufw allow 8888/tcp

总结

在本文中,我们介绍了当我们使用DBeaver连接MariaDB时可能会遇到的问题。我们列举了一些可能的解决方法,例如检查MariaDB是否正在运行,确认连接参数是否正确,确认MariaDB是否在正确的端口上运行,以及检查防火墙设置。希望这些解决方法可以帮助您解决连接MariaDB的问题。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程