用Android访问本地站点---(localhost,10.0.2.2)要区别

不知道大家是否想试一下用Android模拟器如何访问自己建的Web站点呢? 下面我将讲一下如何实现.

Step 1:我用的Tomcat作为本地服务器,在Webapps这个目录里,把我的名为kankongWeb工程放进来,启动Tomcat服务器.

在浏览器里输入:http://localhost(或者127.0.0.1):8080/kankong/index.html将出现如下界面:

Step 2:启动Android 模拟器:

如果你在Eclipse里已经启动了Android模拟器就跳过此步.我们如何手动启动Android模拟器呢?

首先运行cmd出现我们习惯的黑屏,输入Android list avd(列出所有AVD模拟器)

然后我们选择其中一个启动以Android 1.5为例子:emulator -debug avd_config -avd android 1.5:

出现我们熟悉的画面如下:

Step 3:打开浏览器输入http://localhost:8080/kankong/index.html?

我们的第一想法是输入http://localhost:8080/kankong/index.html,可是这将不会成功,为什么呢?问题是这样的,android模拟器(simulator)把它自己作为了localhost,也就是说,代码中使用localhost或者127.0.0.1来访问,都是访问模拟器自己!这是不行的!

如果你想在模拟器simulator上面访问你的电脑,那么就使用android内置的IP10.0.2.2吧, 10.0.2.2 是模拟器设置的特定ip,是你的电脑的别名alias记住,在模拟器上用10.0.2.2访问你的电脑本机.

也就是输入http://10.0.2.2:8080/kankong/index.html将出现如下界面:

OK~这样就大功告成了!

出现错误 `Host '10.0.2.2' is not allowed to connect to this MySQL server`(错误代码 1130)通常是因为 MySQL 的用户权限配置限制了远程连接。以下是解决此问题的方案: ### 配置 MySQL 用户权限允许远程连接 默认情况下,MySQL 的 root 用户可能仅限于本地访问(即 `host` 字段为 `localhost`)。为了允许远程主机连接,需要将用户的 `host` 字段修改为 `'%'`,表示允许所有 IP 地址访问。 #### 步骤如下: 1. 进入正在运行的 MySQL 容器中: ```bash docker exec -it docker_mysql mysql -u root -p ``` 2. 在 MySQL 命令行中执行以下语句,将 `root` 用户的 `host` 字段设置为允许任意主机连接: ```sql use mysql; update user set host = '%' where user = 'root' and host = 'localhost'; select host, user from user; FLUSH PRIVILEGES; ``` 这些操作会更新数据库中的用户表,并刷新权限以确保更改立即生效[^3]。 ### 确保 Docker 映射端口正确 检查容器启动命令是否正确映射了 MySQL 的默认端口 3306 到宿主机的某个端口(例如 3316),确保外部可以访问到该端口: ```bash docker run --name docker_mysql -e MYSQL_ROOT_PASSWORD=123456 -d -p 3316:3306 mysql:5.7 ``` 确认宿主机防火墙或安全组规则没有阻止对应端口的访问。 ### 检查 MySQL 配置文件 如果使用挂载方式配置 MySQL 数据目录和配置文件,需确保在 `my.cnf` 或其他配置文件中未包含 `bind-address = 127.0.0.1` 这类限制绑定地址的指令。如果有,请将其注释掉或者改为 `bind-address = 0.0.0.0`,以便接受来自任何网络接口的连接请求[^2]。 ### 测试连接 完成上述配置后,在 Navicat 中尝试重新连接 Docker 中的 MySQL 实例。填写正确的主机名/IP 地址、端口号以及认证信息(用户名和密码)进行测试。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值