简约的技术

On Cqun.com


MySQL 08S01 错误

16年11月28日

导入数据时出现如下问题:

出现开放式数据库连接(ODBC)错误。 state: ‘08S01’. Native Error Code: 2013. [MySQL][ODBC 5.3 Driver][mysqld-5.6.29]Lost connection to MySQL server during query

只需Mysql配置一些参数重启一下Mysql就可以解决:

wait_timeout = x 超时时间 如600秒

max_allowed_packet = y 最大允许数据量

适当增加x,y的值。

此问题说吧了就是链接超时或者投递数据过多引起的。

Windows TCP 端口转发(映射)

16年11月24日

在某些环境中,我们需要通过一台服务器访问另外一台服务器某个端口,例如:

需要通过192.168.1.2 的 2433 端口访问192.168.1.6的2433端口,只需在192.168.1.2上要执行一条命令就可以做到

PS C:\> netsh interface portproxy add v4tov4 listenport=2433 listenaddress=192.168.1.2 connectport=2433 connectaddress=192.168.1.6

这时访问192.168.1.2的2433端口其实是访问的后端192.168.1.6的2433端口。

取消端口转发,我们只需将上面命令的add变换成delete就可以了。

通过命令还可以查看将那些端口做了转发(映射):

PS C:\> netsh interface portproxy show all

侦听 ipv4:                 连接到 ipv4:

地址            端口        地址            端口
--------------- ----------  --------------- ----------
*               2433        192.168.1.6     2433
*               2434        192.168.1.16    2433

git fetch 与 git pull 的区别

16年11月23日

在弄清 git fetch 与 git pull 区别之前,我们先从远端库git clone两个本地库(A库、B库)进行实际操作。

A库进行一次git commit 并 push 到远程库

$ cat refs/heads/master
db39bda75ddb5e8c8b594e4a170167d95d6d3e41

$ cat refs/remotes/origin/master
db39bda75ddb5e8c8b594e4a170167d95d6d3e41

B库执行 git fetch 观察库最新版本变化

$ cat refs/heads/master
01ed31d989693b92664161f16944b4ac2f5fbb12

$ cat refs/remotes/origin/master
db39bda75ddb5e8c8b594e4a170167d95d6d3e41

$ cat refs/FETCH_HEAD
db39bda75ddb5e8c8b594e4a170167d95d6d3e41		branch 'master' of github.com:HelloDBA/gitlab

git fetch 只是更新了本地库关联的远程库的最新版本指向,本地库文件版本并没有变化

  • git fetch:这将更新git remote中所有的远程repo所包含分支的最新commit-id, 将其记录到.git/FETCH_HEAD文件中
  • git fetch remote_repo:这将更新名称为remote_repo 的远程repo上的所有branch的最新commit-id,将其记录
  • git fetch remote_repo remote_branch_name:这将这将更新名称为remote_repo 的远程repo上的分支: remote_branch_name
  • git fetch remote_repo remote_branch_name:local_branch_name:这将这将更新名称为remote_repo 的远程repo上的分支: remote_branch_name ,并在本地创建local_branch_name 本地分支保存远端分支的所有数据。

B库执行 git commit 观察最新版本变化并git fetch

$ cat refs/heads/master
3b565936eb8f41ceca5991e9c096a403fbdad0a8

$ cat refs/remotes/origin/master
db39bda75ddb5e8c8b594e4a170167d95d6d3e41

$ cat FETCH_HEAD
db39bda75ddb5e8c8b594e4a170167d95d6d3e41                branch 'master' of github.com:HelloDBA/gitlab

本地库并没有变化,也就是说,git fetch只会将本地库所关联的远程库的commit id更新至最新

这时我们对B库进行git push的话肯定会失败,因为和远端库存在冲突,冲突的原因是两个本地库进行了不同的向前版本推进,并且其中一个库已经push到远程,而另外一个库在对分支操作前没有进行从远程获新数据(这也不可避免,毕竟要多人协作)

B库执行 git pull 合并冲突并git commit,在A库执行git pull 观察最新版本变化

$ cat refs/heads/master
2e1005440605f4189fc6be947b71349b6edec713

$ cat refs/remotes/origin/master
2e1005440605f4189fc6be947b71349b6edec713

$ cat FETCH_HEAD
2e1005440605f4189fc6be947b71349b6edec713                branch 'master' of github.com:HelloDBA/gitlab

执行git pull 后本地库更新至最新,git pull会将本地库更新至远程库的最新状态,由于本地库进行了更新,HEAD也会相应的指向最新的commit id。

所以虽然从结果上来看,git pull = git fetch origin master:tmp + git merge tmp(git fetch远程分支到本地的一个临时分支,然后再将其合并到本地分支)。

为了更好理解,可以参考一下图:

git fetch git pull

Android 手机在微信运动中开启记步方法

16年11月16日

现在大多数Android手机都已带陀螺仪,是具有计步功能的,但有很多Android手机用户反馈在QQ里的QQ运动公众号能够正常计步,但在微信运动中却没有计步,现将有关方法写出来:

  1. 请将微信升级到最新版本,如果早期版本的微信,有可能不支持。

  2. 选择添加朋友,选择公众号,输入“微信运动”,搜索,选择搜索出来的微信运动,选择启用该功能。

  3. 此时默认是不支持计步的,试着拿着手机走几步或拿着手机甩几下,再选择微信运动底部的步数排行榜,可以看到自己的步数为0。

  4. 选择任意好友或其他可以输入的公众号,输入以下文本文件中的内容,选择发送。出现“配置成功,请退出重新登录微信”的提示信息(重要!如果未出现此提示,则输入的内容有错,请检查后重新输入)。

//setkey <deviceinfoconfig><voip><sensor><stepCounterMaxStep5m>1000</stepCounterMaxStep5m> <stepCounterSaveInterval>60000</stepCounterSaveInterval><stepCounterRateUs>600000</stepCounterRateUs> <stepCounterSwitch>1</stepCounterSwitch></sensor></voip></deviceinfoconfig>

  1. 微信主界面,选择右下角的“我”,进入设置,选择退出,退出当前帐号。

  2. 重新登录微信,进入“微信运动”公众号,再试着拿着手机走几步或拿着手机甩几下,从底部的步数排行榜进入,就可以见到步数已经有变化了(如果仍然为0,可尝试退出微信运动公众号再次进入,并在隐私及提醒设置中开启加入排行榜)。

Tracert 经过 H3C 设备超时问题处理

16年10月20日

Tracert(跟踪路由)是路由跟踪实用程序,用于确定 IP 数据包访问目标所采取的路径。Tracert 命令使用用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。

但有时候使用Tracert时候返回结果却是超时,例如:

C:\>tracert -d www.163.com

Tracing route to 163.xdwscache.ourglb0.com [121.18.230.86]
over a maximum of 30 hops:

  1     1 ms     1 ms     1 ms  172.16.2.1
  2     *        *        *     Request timed out.
  3     *        *        *     Request timed out.
  4     4 ms     3 ms     2 ms  221.192.39.217
  5     4 ms     3 ms     3 ms  218.12.255.145
  6     4 ms     7 ms     5 ms  61.182.171.54
  7     4 ms     4 ms     4 ms  221.194.41.154
  8     4 ms     3 ms     4 ms  10.8.24.22
  9    38 ms    37 ms    37 ms  121.18.230.86

Trace complete.

返回结果第二行是H3C路由器,只需要我们进入路由器配置两条命令就可以看到第二跳(路由器)的信息了

[Hbsc-Wanda-MSR3020]ip ttl-expires enable      
[Hbsc-Wanda-MSR3020]ip unreachables enable   

在跟踪一次:

C:\>tracert -d www.163.com

Tracing route to 163.xdwscache.ourglb0.com [121.18.230.86]
over a maximum of 30 hops:

  1     1 ms     1 ms     1 ms  172.16.2.1
  2    <1 ms    <1 ms    <1 ms  172.17.100.254
  3     *        *        *     Request timed out.
  4     2 ms     2 ms     2 ms  221.192.39.217
  5     3 ms     9 ms    11 ms  218.12.255.145
  6     5 ms     7 ms     7 ms  61.182.171.54
  7     4 ms     4 ms     4 ms  221.194.41.154
  8     3 ms     4 ms     6 ms  10.8.24.22
  9    38 ms    38 ms    37 ms  121.18.230.86

Trace complete.

第二条已经能正确范围结果了。haha