因为本人需要做一个项目,后端数据库就用MySQL实现。但是,想要别人连接数据库,那就得先让别人能连上,并且有一个合理权限的用户。但是在建立用户后并不能别人连接我的MySQL,这是为什么呢?因为我现在所在的是局域网,并不能被别的局域网连接上。
那就记录一下解决过程吧:
进行用户创建以及权限配置
本机登录MySQL(我这里登陆的是root,也应该只有root才能给予权限)
创建一个新用户
首先使用mysql 数据库:

大致意思如上,就是我建立了一个用户,他叫test,并且可以从任意IP(%通配符)登入,且密码为testword。
更改权限

大致意思就是给予test用户所有关于project_ds这个数据库的权限。
登录
你在本地局域网登陆的时候,其实是可以登录了。因为局域网可以访问你本地的数据库,可以直接与你的网关进行通信。但是,别人找不到你的网关啊,你的网关在局域网里面。除非你装网线的时候叫师傅帮你装个公网IP哈哈。
进行内网穿透 下面就比较简单了,就是借外部服务器打造一个简单的反向代理环境,让你的电脑好像能被访问成外网。(外部服务请求先发送到服务器,再通过相应的连接端口转发给本机)
这里推荐一个工具,叫ngrok(国内为小米球)。一包卫龙解决代理问题。
这里提供一下简单的两个bat,一个是mysql启动,一个是mysql启动+ngrok启动。
1 2 3 4 5 @echo OFF :START echo .Ngrok.exe -config Ngrok.conf -log=Ngrok.log -log-level=info start -all goto TUNNEL
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 @echo off >nul 2 >&1 "%SYSTEMROOT% \system32\cacls .exe" "%SYSTEMROOT% \system32\config\system" if '%errorlevel% ' NEQ '0 ' (goto UACPrompt) else ( goto gotAdmin ) :UACPrompt echo Set UAC = CreateObject^("Shell.Application"^) > "%temp% \getadmin.vbs"echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp% \getadmin.vbs""%temp% \getadmin.vbs" exit /B:gotAdmin if exist "%temp% \getadmin.vbs" ( del "%temp% \getadmin.vbs" )pushd "%CD% "CD /D "%~dp0"@echo off set /p msg=MySQL Service - Y for open, N for close: echo offif %msg% == Y goto start if %msg% == y goto start if %msg% == N goto stopif %msg% == n goto stop:start net start MySQlset /p msg=Ngrok - Y for open, N for close: echo offif %msg% == N goto endif %msg% == n goto endcd /d D:\Gadgets\Ngrokcall start_Ngrok.batgoto end:stop net stop MySQl:end echo byepause