MySQL8 允许远程连接命令

MySQL 是一种广泛使用的关系型数据库管理系统,它支持多用户、多线程的SQL数据库服务器。在默认情况下,MySQL 服务器只允许本地连接,即只能在服务器所在的机器上访问数据库。如果需要在其他机器上远程访问 MySQL8 数据库,需要进行一些配置。

本文将介绍如何配置 MySQL8 允许远程连接,并提供相应的命令示例。

远程连接配置

要允许远程连接到 MySQL8 数据库,需要进行以下几个步骤:

  1. 修改 MySQL 配置文件

    打开 MySQL 的配置文件 my.cnf,一般位于 /etc/mysql/my.cnf 或者 /etc/my.cnf,找到 bind-address 这一行,将其注释掉或者修改为服务器的公网 IP 地址。注释掉的方法是在该行前加上 # 符号。

    #bind-address = 127.0.0.1
    
  2. 重启 MySQL 服务

    使用以下命令重启 MySQL 服务,使配置文件的修改生效。

    sudo service mysql restart
    
  3. 授权远程连接的用户

    在 MySQL 中,每个用户都有权限表,我们需要在权限表中添加允许远程连接的权限。

    首先登录 MySQL 服务器,并选择要授权的数据库。

    mysql -u root -p
    

    然后执行以下命令:

    GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
    

    其中,usernamepassword 分别为要授权的用户名和密码。

    GRANT ALL PRIVILEGES 表示授予用户所有权限,*.* 表示所有数据库和表,'%' 表示任何远程地址都可以连接。如果你只想允许特定的 IP 地址连接,可以将 '%' 替换为具体的 IP 地址。

    最后,执行以下命令使修改生效。

    FLUSH PRIVILEGES;
    

现在,MySQL8 已经允许远程连接了。接下来,我们将通过一个状态图来描述远程连接的流程。

状态图

stateDiagram
    [*] --> 未连接
    未连接 --> 连接中 : 执行连接命令
    连接中 --> 连接成功 : 连接成功
    连接中 --> 连接失败 : 连接失败
    连接成功 --> [*] : 断开连接
    连接失败 --> [*] : 重新连接

以上是一个简单的状态图,描述了远程连接的状态流转过程。接下来,我们将通过一个流程图来详细说明远程连接的步骤。

远程连接流程

flowchart TD
    subgraph 远程连接流程
    A(修改 MySQL 配置文件) --> B(重启 MySQL 服务) --> C(授权远程连接的用户)
    C --> D(执行连接命令)
    D --> E{连接成功}
    E --> |是| F(断开连接)
    E --> |否| G(连接失败)
    G --> H(重新连接)
    end

以上是一个流程图,详细说明了远程连接的步骤。下面我们来看一个具体的示例。

示例

假设我们的 MySQL8 服务器的公网 IP 地址为 123.456.789.0,要允许远程连接的用户名为 test,密码为 password

  1. 首先,修改 MySQL 配置文件。

    sudo vi /etc/mysql/my.cnf
    

    bind-address 这一行的 IP 地址修改为服务器的公网 IP 地址。

    #bind-address = 127.0.0.1
    bind-address = 123.456.789.0
    

    保存并退出配置文件。

  2. 重启 MySQL 服务。

    sudo service mysql restart
    
  3. 登录 MySQL 服务器,选择要授权的数据库