Mysql_8.0.33服务器配置远程连接(ubuntu20-04)

Mysql_8.0.33

Mysql_8.0.33服务器配置远程连接(ubuntu20.04)

安装Mysql

如果连安装都不会的话,可以去搜索一下……

本文以 Mysql8.0.33版本为例,服务器为 ubuntu20.04,基于腾讯云 lighthouse_2C4G

配置端口以及远程连接设置

  1. 登录MySQL;

  2. 使用 show global variables like 'port';查看当前端口号;

  3. 编辑 /etc/mysql/my.cnf文件,将 port项的值修改为需要的端口号,以 33333为例;

    可能路径会略有区别,以实际为准;

  4. MySQL的配置文件中,可能有一些选项会限制远程连接,例如:

    • bind-address:这个选项用来指定MySQL监听的IP地址。如果设置为 127.0.0.1或者 localhost,则只允许本地连接。如果想要允许远程连接,可以将这个选项注释掉或者设置为 0.0.0.0
    • skip-networking:这个选项用来禁止TCP/IP网络连接。如果启用了这个选项,MySQL只能通过Unix套接字或者命名管道进行连接。如果想要允许远程连接,可以将这个选项注释掉或者设置为 OFF
    • skip-name-resolve:这个选项用来禁止MySQL对客户端的主机名进行解析。如果启用了这个选项,MySQL只能通过IP地址进行连接,不能使用主机名或者域名。如果想要允许使用主机名或者域名进行远程连接,可以将这个选项注释掉或者设置为 OFF
  5. 示例配置文件:

    1
    2
    3
    4
    5
    6
    7
    8
    
    !includedir /etc/mysql/conf.d/
    !includedir /etc/mysql/mysql.conf.d/
    
    [mysqld]
    bind-address = 0.0.0.0
    port = 33333
    skip-networking = OFF
    skip-name-resolve = OFF
    
  6. 在服务器的防火墙中放行设定的端口 port = 33333

  7. 重启 MySQL即可。

创建远程连接用户

  1. MySQL 8.0之前,可以使用 GRANT语句来同时创建用户和分配权限,例如:

    1
    2
    
    -- 创建user1用户,并授权访问test数据库
    grant all on test.* to 'user1'@'%' identified by '123456';
    
  2. 但是,在 MySQL 8.0之后,这种用法被废弃了,必须先使用 CREATE USER语句来创建用户;

  3. 如果你的 MySQL版本是 8.0,你可以使用以下命令来让 user1访问所有数据库;

    这样,user1就可以访问MySQL中的任何数据库和表了。

    但是,这样做可能会带来安全风险,因为user1可以修改或删除任何数据。

    所以,建议你根据实际的需求,给用户分配合适的权限。

    1
    2
    3
    4
    5
    6
    
    -- 创建user1用户
    create user 'user1'@'%' identified by '123456';
    -- 授权user1用户访问所有数据库的所有表
    grant all on *.* to 'user1'@'%';
    -- 刷新权限
    flush privileges;
    
  4. 随后重启 MySQL即可。

    1
    
    service mysql restart
    

远程连接数据库

  1. Navicat为例,远程连接数据库。

  2. 新建连接,连接名任取;

    主机服务器的ip地址或者服务器的域名

    端口为之前设定的端口;

    用户名为之前新建的用户;

    密码为对应用户的密码;

    image-20230517005223247

  3. 确定连接,即可。

Written by VastCosmic & Post in 泠境
Explore the Infinity Cosmos.
Built with Hugo
Designed By VastCosmic with Hugo Theme Stack