Shawn摘要

一、环境准备

首先服务器上得有MySQL

ubuntu上一行命令就可以安装,而且默认是8.0的版本

1
sudo apt install mysql-server

然后需要配置服务器安全组(或防火墙)的权限。叫法不同而已,阿里云叫安全组,腾讯云叫防火墙。

阿里云

点击快速添加,添加MySQL (3306)

快速配置MySQL

二、配置MySQL允许远程连接

默认情况下,MySQL服务器只允许本地连接。我们需要修改配置文件来允许远程连接。

如果不修改配置文件,我们直接用IDE连接远端MySQL会显示连接被拒绝

IDEA

编辑MySQL配置文件 打开MySQL配置文件my.cnfmysqld.cnf(文件位置因系统不同而异,通常在/etc/mysql/目录下)。在我的ubuntu上是/etc/mysql/mysql.conf.d/mysqld.cnf

1
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

修改绑定地址 找到bind-address配置项,将其修改为0.0.0.0,表示MySQL将监听所有IP地址的连接请求。

将其修改为0.0.0.0
将其修改为0.0.0.0
保存并重启MySQL服务
保存并重启MySQL服务
1
sudo systemctl restart mysql

三、为远程用户授予访问权限

登录MySQL

1
mysql -u root -p

创建远程用户并授予权限 为用户remote_user授予从任意IP地址访问数据库的权限:

1
2
3
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'password';
GRANT ALL ON *.* TO 'remote_user'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

使用IDE连接成功✌

Succeeded

至此远程连接服务器MySQL大功告成

假如中途遇到了mysql.service failed或其他任何奇奇怪怪的报错,实在解决不了可以彻底删除MySQL,再重装一遍

1
2
3
4
5
sudo apt autoremove --purge mysql-server\* mariadb-server\*
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/mysql/
sudo mkdir -p /etc/mysql/conf.d
sudo apt install mysql-server

接下来可以使用IDE直接修改服务器MySQL的数据了,如果以上方法无法成功,以下是替代方案

替代方案

1. 使用scpgit将SQL文件拷贝到远端服务器

还有一种方式是将.sql脚本文件使用gitscp拷贝到服务器上

使用SCP命令上传SQL文件 假设SQL文件位于本地计算机的/path/to/backup.sql,目标服务器的用户名为remote_user,IP地址为192.168.1.100,目标路径为/remote/path/

1
scp /path/to/backup.sql [email protected]:/remote/path/

运行该命令后,系统将提示你输入远程服务器的密码。输入密码后,SCP将开始将文件上传到远程服务器。

使用git这里就不加追述了

2. 使用MySQL的source命令执行SQL文件

通过SSH连接到远程服务器

1
ssh [email protected]

登录MySQL

1
mysql -u your_mysql_user -p

输入MySQL用户的密码,成功登录后,你将进入MySQL命令行界面。

使用source命令执行SQL文件 假设SQL文件上传到了/remote/path/backup.sql

1
source /remote/path/backup.sql;

运行该命令后,MySQL将依次执行文件中的所有SQL语句。