1.建立Windows防火墙规则
首先需要开放windows防火墙,针对3306端口单独创建一条规则,允许访问。
打开windows安全中心防火墙与保护,点击高级设置
进入之后,点击入站规则,新建一条规则
新建端口入站规则
端口填写3306
允许连接
这里默认全选
进行合适命名
2.对Windows下的数据库进行操作
创建完防火墙入站规则后,接着对Windows下的数据库进行操作,授予linux用户访问数据库权限。
以管理员身份打开PowerShell或者CMD:
登录MySQL
mysql -u root -p
授予其他机器远程访问权限并刷新配置
grant all privileges on *.* to 'root'@'%' identified by "密码";
flush privileges;
3.Linux端操作
Linux需要安装MySQL,我是树莓派安装的ubuntu 22.04,所以mysql需要安装ARM 64位的,电脑应该是AMD 64位。
可以先换一下ubuntu镜像源,我使用的清华源,根据自己的设备情况按需选择Ubuntu ports(ARM)或者ubuntu(aAMD):https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu-ports/
配置镜像源之前,最好先把本来的配置文件备份一下:
cp /etc/apt/sources.list /etc/aptsources.default.list
# 之后修改配置文件,ubuntu 22.04 vi命令默认链接到vim,其他版本可以使用 vim
sudo vi /etc/apt/sources.list
# 或者进行可视化编辑
sudo gedit /etc/apt/sources.list
# 更新源
sudo apt-get update
安装MySQL,这里安装的MySQL 8.0,本来想安装5.7版本,但是arm不支持,amd倒是可以。不过不用担心,Linux系统上安装的MySQL 8.0版本可以成功访问运行在Windows系统上的MySQL 5.7版本。MySQL客户端库通常提供向后兼容性,因此较新版本的MySQL客户端通常可以连接到较旧版本的MySQL服务器。
sudo apt install mysql-server
# 安装完成查看mysql运行状态
systemctl status mysql
登录mysql
mysql -u root
修改root账户密码并刷新权限
alter user 'root'@'localhost' identified with caching_sha2_password by'密码';# 刷新权限
flush privileges;
查看下windows的ip地址,在CMD或者PowerShell:ipconfig
最后在linux客户端访问数据库:
mysql -u root -h 你自己的windows的IP地址 -p
输入密码即可访问。