0 我的环境
我在本地windows上开发,跑在服务器上的程序需要访问我的win本地数据库
1 打开mysql的bin目录
cd F:\program\phpstudy_pro\Extensions\MySQL8.0.12\bin
2 登录
.\mysql -u root -p
3 切换数据库
use mysql;
4 创建远程用户
4.1 #删除匿名用户,没有可不删
delete from user where user='';
4.2 创建远程用户
4.2.1 #mysql版本8.0以下使用以下命令
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
4.2.2 #mysql版本8.0及以上使用以下命令:
4.2.2.1 创建用户
create user ttt@'%' identified by '123456';
4.2.2.2 赋权操作
grant all privileges on *.* to ttt@'%' with grant option;
- GRANT:赋权命令
- ALL PRIVILEGES:当前用户的所有权限
- ON:介词*.*:当前用户对所有数据库和表的相应操作权限
- TO:介词
- ‘root’@’%’:权限赋给root用户,’%’代表所有ip都能连接
- IDENTIFIED BY ‘123456’:连接时输入密码,密码为123456
- WITH GRANT OPTION:允许级联赋权
4.2.2.3 密码认证
MySQL 8.0 的新特性,默认认证方式改为 SHA2 了,但远程访问的方式仍然是密码认证。
所以我们得把 SHA2 认证改为 密码认证。
ALTER USER 'ttt'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
4.3 如果需要指定访问主机
可以把%替换为主机的IP或者主机名,root为用户名,by后面是远程登录的密码,大家根据自己的情况进行相应的修改。
1
CREATE USER ttt2@'10.10.10.234' IDENTIFIED BY '123456';
2
GRANT ALL PRIVILEGES ON *.* TO ttt2@'10.10.10.234' WITH GRANT OPTION;
3
ALTER USER 'ttt2'@'10.10.10.234' IDENTIFIED WITH mysql_native_password BY '123456';
5 退出并重启mysql
quit;
net stop mysql ;
net start mysql;
6 开启windows端口
控制面板------>系统与安全------>Windows Defender防火墙------->高级设置------>入站规则------>端口------>TCP------>3306------>随便起个名:mysql远程端口
然后再设置相同的出站规则

6.1进站规则
6.2 同理 再设置出站规则
7 查看mysql配置文件my.ini有没有访问限定(一般不需要设置)
- bind-address=127.0.0.1 #只允许本机访问。
- bind-address=某个网卡的ip #例如bind-address=192.168.1.101,只能通过ip为192.168.1.101的网卡访问。
- bind-address=0.0.0.0 #此规则是系统默认配置,监听所有网卡,即允许所有ip访问。
具体看这里
https://www.cnblogs.com/valley-yyds/p/15625091.html
改完要重启一下,一般不需要改8 测试连接是否成功
查看安装mysql服务的windows主机A的ip地址
ipconfig
我是无线局域网
在另一台主机B上连接
mysql -h 10.10.10.114 -u ttt -P 3306 -p123456

代表成功了
9 参考
如果不成功,把防火墙关掉试试,我是avast需要关闭防火墙
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏