搭建远程mysql服务器(阿里云轻量应用服务器)

搭建远程 mysql 服务器

环境

  • ubuntu18.04

安装 mysql

# 安装 mysql 服务端
$sudo apt install mysql-server
# 安装 mysql 客户端
$sudo apt install mysql-client

登陆mysql

输入以下代码后,直接回车,因为我是新安装的所以,不需要输入密码即可登陆成功

$mysql -u root -p

查看全部用户和用户权限

发现所有的用户只能够本地访问 mysql 服务器

mysql> SELECT user, host FROM user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| debian-sys-maint | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
5 rows in set (0.01 sec)

创建一个新用户,开启远程访问

虽然我们可以直接用 root 用户远程访问 mysql 服务器,这里我新创建一个用户

# 使用 root 登陆后,进入 mysql 数据库
mysql>use mysql;
# 新创建一个用户,%匹配所有服务器
# 用户名    : 登陆用户名
# %        : 能够访问该数据库的 IP 地址,%匹配全部 IP 地址
# 用户名密码 : 用户名密码
mysql>create user '用户名'@'%' identified by '用户名密码';
# 对新创建的用户授权,这里的是授权所有功能
mysql>grant all privileges *.* to '用户名'@'%';
# 刷新
mysql>flush privileges;

查看用户表

发现 kyfxb 允许全部 IP 访问

mysql> SELECT user, host FROM user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| kyfxb            | %         |
| debian-sys-maint | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
5 rows in set (0.01 sec)

如果 host 为 % 表示允许全部 IP 访问该用户,如果 host 不为 % 可以手动更新

修改 host 为 %

mysql> USE mysql
Database changed
mysql> UPDATE USER SET host = '%' WHERE user = '用户名'

由于我使用的是阿里云的服务器,还要开启mysql默认端口3306

控制台>轻量应用服务器>点击自己的服务器>安全>防火墙>添加一条规则

在这里插入图片描述

查看 MySQL 监听的端口

root@iZuf683kkxxmx5ts3b6mniZ:~# netstat -anpt
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      7777/mysqld

如果不是 0.0.0.0:3306 则需要修改 MySQL 配置文件

MySQL 配置文件

/etc/mysql/mysql.conf.d

修改 MySQL 监听所有 IP 地址

修改 mysql 服务器配置文件

# 在 mysqld 下面添加或者替换一个属性
[mysqld]
bind-address=0.0.0.0  #监听全部地址或者指定的ip地址

重启 mysql 服务

$service mysql restart

查看端口情况

netstat -anpt

端口情况

在这里插入图片描述

使用 idea 测试连接

在这里插入图片描述

连接状况

没有连接成功

报错

com.intellij.execution.ExecutionException: Error: Could not create the Java Virtual Machine.
    Error: A fatal exception has occurred. Program will exit.

暂时没有解决,目前猜测是内存不够,后续再测试一下

如上猜测正确,释放一些内存后,控制台连接成功,但是 idea 提供的 Database 仍然没有连接成功

package xyz.group.kyfxb.config;

import org.junit.jupiter.api.Test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

/**
 * @package xyz.group.kyfxb.config
 * @title MysqlConnectorTest
 * @description 测试连接远程 MySQL 服务器
 * @author snowflake
 * @date 2020/2/2 - 15:54
 * @version v1.0
 */
public class MysqlConnectorTest {

    private String url = "jdbc:mysql://<ip地址>:3306/kyfxb?serverTimezone=GMT&useSSL=true";
    private String username = "kyfxb";
    private String password = "kyfxb";

    static {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

    @Test
    public void testConnection() throws SQLException {
        Connection con = DriverManager.getConnection(url, username, password);
        System.out.println(con);
    }

}

Connection 对象信息

com.mysql.cj.jdbc.ConnectionImpl@7d286fb6
17:14	Connection to kyfxb@ip failed.
		[08S01] Communications link failure.
		The last packet successfully received from the server was 41 milliseconds ago.  The last packet sent successfully to the server was 41 milliseconds ago.

ed.
[08S01] Communications link failure.
The last packet successfully received from the server was 41 milliseconds ago. The last packet sent successfully to the server was 41 milliseconds ago.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值