一、环境准备
首先服务器上得有MySQL
ubuntu上一行命令就可以安装,而且默认是8.0的版本
1 | sudo apt install mysql-server |
然后需要配置服务器安全组(或防火墙)的权限。叫法不同而已,阿里云叫安全组,腾讯云叫防火墙。
点击快速添加,添加MySQL (3306)
二、配置MySQL允许远程连接
默认情况下,MySQL服务器只允许本地连接。我们需要修改配置文件来允许远程连接。
如果不修改配置文件,我们直接用IDE连接远端MySQL会显示连接被拒绝
编辑MySQL配置文件 打开MySQL配置文件my.cnf
或mysqld.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地址的连接请求。
1 | sudo systemctl restart mysql |
三、为远程用户授予访问权限
登录MySQL
1 | mysql -u root -p |
创建远程用户并授予权限 为用户remote_user
授予从任意IP地址访问数据库的权限:
1 | CREATE USER 'remote_user'@'%' IDENTIFIED BY 'password'; |
使用IDE连接成功✌
至此远程连接服务器MySQL大功告成
假如中途遇到了mysql.service failed
或其他任何奇奇怪怪的报错,实在解决不了可以彻底删除MySQL,再重装一遍
1 | sudo apt autoremove --purge mysql-server\* mariadb-server\* |
接下来可以使用IDE直接修改服务器MySQL的数据了,如果以上方法无法成功,以下是替代方案
替代方案
1. 使用scp
或git
将SQL文件拷贝到远端服务器
还有一种方式是将.sql
脚本文件使用git
或scp
拷贝到服务器上
使用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语句。