Linux

CentOS 7.4 No package python-pip available

昨天新开了一个VPS,准备安装一下Pip,搭建一下项目环境,但是执行 sudo yum install -y python-pip 后,终端提示** No package python-pip available**。没有pip的可用包。 上网搜的结果都是三步走,就可以解决: yum install -y epel-release yum install python-pip pip install —-upgrade pip 但是按照这个说法执行下来,依然是出错的,提示错误相同。搜了一下epel的[

  • Domon
    Domon
1 min read
Linux

MySQL设置用户访问权限

对于有远程访问MySQL的需求的话,通过MySQL的权限管理,可以设置一个新的用户指定IP访问,指定数据库操作,指定表,这样用最小粒度确保安全。创建新用户可以通过SELECT user,host from mysql.user;查出当前的用户及Host。Host一般为localhost,127.0.0.1,%,固定IP。%的意思是,任意IP都可以。为单独的程序新建一个MySQL用户CREATE USER 'username'%'host' INDENTIFIED BY 'userpassword';即可创建一个新的用户。给该用户设定权限为了保证安全,一般都需要设定的权限最小。比如,定位到某个数据库的某个表,

  • Domon
    Domon
2 min read
Python

Python通过SSH连接MySQL

因为项目的特殊性,数据库只允许内网访问&服务器公网SSH访问,需要本地机器A通过SSH登录到目标机器B上,访问该B中的MySQL。搜寻了一圈,大部分的内容都是教如何在本地机器A,通过SSH连接到跳板机B,然后访问C机器的MySQL。所以记录一下我的实现方法。 需要用到的两个Python libs:pymysql和sshtunnel。 不通过SSH连接数据库 conn = pymysql.connect(host=localDbConfig.MYSQL_IP, port=localDbConfig.MYSQL_PORT, user=localDbConfig.MYSQL_USERNAME, password=localDbConfig.MYSQL_

  • Domon
    Domon
1 min read
Tips

Windows中自定义Git Bash

由于在公司是Windows10的环境,所以没有一个很好的命令行工具。PowerShell我觉得不行。我尝试过安装了子Linux系统,但是使用体验仍然很割裂,不是很舒服。兜兜转转,我最后选择了Git Bash。一来可以随Git安装,二来可以免费使用。只是每次打开Git Bash我都很难认真的用下去,因为,真的是有点丑。既然如此那就简单的改造下。 打开Git Bash的Options->Looks,发现默认的几个Theme就挺好看的,无非是字体大小和背景色不怎么舒服。点击Color Scheme Designer进入配色编辑网站。这个网站比较有意思,一般情况其他的配色网站都会提供现成的配色,它这里给你提供了一个调色盘。我尝试获取我修改好的配色后,发现并没有触发**.minttyrc**文件,不知道是不是我哪里操作不对。

  • Domon
    Domon
2 min read
IT

Git Reset 三种模式

日常的工作当中,由于需要和别人协同工作,代码方面当然就直接使用Git的方式来管理了。在日常使用当中有很多命令比较常用 git commit git push git stash git rebase -i HEAD~想要合并的Commit数量 git reset git rebase 我在这一篇文章已经做了一点讲解,应该使用起来都比较方便。值得一提的是,可以使用git rebase -abort来撤销一次rebase。 今天来说一下git reset。它的一句话概括 git-reset - Reset current HEAD

  • Domon
    Domon
3 min read
IT

手动更新Kindle

前两天听说,Kindle更新了固件5.9.6,支持自定义的字体了。但是我在Kindle中的自动更新上面一直是灰色不可用的状态。查了下才知道,Kindle的推送是分批的,一般在一个周到一个月不等。本着,自己动手,丰衣足食的原则,我自己去下载了新的固件,并使用了几个免费的没有版权的字体。整个过程非常的简单。 下载对应你的Kindle版本的固件。根据你自己的版本来在这里下载。 将Kindle连接到电脑的USB中 打开Kindle的根目录,复制上面下载的固件进去 拔掉电源,在Kindle的设置-设备信息-高级里面,就会发现自动更新已经可以使用了 点击自动更新,等待设备自己重启更新固件 设备开机之后,根目录会多出一个文件夹font,将你想要自定义的字体(TFF格式为佳)放进去 打开一本书,在Aa设置当中,就会发现有自己的自定义字体可以选择了

  • Domon
    Domon
2 min read
IT

Git合并Commit

在日常的代码提交过程中,一定会有一些情况,提交了一些临时的Commit,这些Commit会影响整个我们回顾Git Log。所以需要在合适的时候,将一些临时的信息,或者某几条Commit合并起来。 首先假设我们有三条最新的Commit记录,ABC。我们输入 git rebase -i HEAD~3 HEAD~3表示从当前的提交往回三次以内的提交。这时候,会进入一个rebase-edit的界面。在这个界面中,可以选择你想要合并的Commit,通过Commands: p,pick 使用这条commit r,reword 使用这条commit,并编辑commit message e,edit

  • Domon
    Domon
1 min read
Linux

服务器图片403

这两天服务器端的环境已经部署好了,发现了一个问题,登录后台管理系统的时候,很多图片的地址无法正常访问。提示403错误,顺藤摸瓜的找了很久,没发现什么异常。改了Nginx的配置文件,支持了正则图片格式。仍然失效。突然想起来是不是权限设置的有问题。ls -al 一看果然。,。默认的权限都是root的。因为我设置了一个独立的用户组来控制,所以在nginx访问这些目录的时候,肯定会提示403错误。大意了大意了。

  • Domon
    Domon
1 min read
IT

SSH服务器免密码登录

最近由于工作的需要,经常需要通过SSH登录各种不同的服务器。之前是通过vSSH这个软件来管理,现在比较倾向就使用iTerm2就可以了。 在使用终端来进行操作的时候,一次两次SSH还可以,但是次数多起来后,一遍又一遍的输入密码很麻烦。而且为了安全,我们AliYun的密码也挺复杂。每一次都需要在Evernote中找到,复制粘贴过来,很不爽。本来考虑写个脚本来处理,但是觉得明文的将密码存储下来,不是很安全。 So,既然都用的SSH,那合不使用SSH的特性来处理这个问题?免密码登录,就能方便的登录各个不同的服务器了。 SSH是一种对称加密,所以我们就只需要通过把自己的公钥放到远程服务器中就可以了。 拷贝出自己的公钥信息 cat ~/.ssh/id_rsa.pub 登录到远程服务器中,查看**~/.ssh/authorized_

  • Domon
    Domon
2 min read
Linux

Centos中双开Tomcat

因为最近的项目需要使用Tomcat来运行,且分了API和Admin两个项目。我就想通过配置,让Tomcat多开。经过一天的折腾和配置,基本上已经完全实现业务需求。由于本机已经安装过一个Nginx,所以Tomcat的默认端口需要修改下。 有两种方案可以解决。 第一种方案:一个Tomcat多开Service 想要多开Service也很简单,只需要复制Tomcat配置中的Service页签就可以了。 <Service name="Catalina"> <Connector port="9080" protocol="HTTP/1.1" connectionTimeout=

  • Domon
    Domon
2 min read
Tips

MySQL远程数据库访问出错排查

上一次在做Django的时候,我就遇到一个问题,我的远程MySQL数据库一直连接不上,比较头疼。但是后来通过mysqldump把数据从远程拷贝到本地来了。 这一次由于牵扯到Typecho的数据转换,我找到的解决方案是通过node的一个包来进行转换。为了使我的Blog数据得以迁移过来,我就不得不开始了折腾之旅。 Navicat里面提示错误信息「2013」,查询了很多结果,基本上都是说自己的远程MySQL没有配置好导致的。 问题排查记录: 去找了下配置文件/etc/my.cnf,里面并没有配置bind_address。应该是MySQL版本较高的原因,默认配置是没有的。 在**[mysqlld]中添加上了skip_name_resolve**,仍然不起作用 远程数据库帐号权限问题,再三确认没有问题 可以通过以下命令获取远程登录权限 grant all

  • Domon
    Domon
1 min read
Tips

取消git中文件或者文件夹的版本管理

很多时候,在开发的时候,由于自己的不小心或者别人的不小心,将一些本来不应该被git版本管理的文件或者文件夹放到网络上或者本地的版本库中(我好像用了很多个或者)。下来就需要将这些文件移除在git版本之外。 当文件已经被手动删除,但是没有从git版本库中删除的时候 这个时候需要,通过**git rm -r fileFloder/ **来删除整个文件夹 当文件仅仅想从git版本库中删除,但本地不删除的时候 通过**git rm -r --cached -r fileFolder/ **。这样fileFolder这个文件夹就从git版本中移除了,同时并没有在本地文件删除这个文件夹。 另外一种方法,可以将这个文件夹,写在.gitignore里面,push到服务器上面即可。

  • Domon
    Domon
1 min read
Tips

MySQL迁移至SQLite

由于最近学习了Django,想着不然把自己的Blog从Typecho迁移到Django的框架中,其实上层差别不是特别大,一个是PHP一个是Python。下层的话,由于我初学Django基本的教程都是通过SQLite作为默认的数据库的。刚好我做Android开发的时候,其实数据库使用的就是SQLite。因此着手把数据库进行迁移下。遇到了一些坑,记录一下。 网上很多SQLite转MySQL的教程,唯独没有MySQL转SQLite的方案。找了几个,大体上的方案都很类似。先将MySQL的DB转换成txt格式,通过批处理修改一下创建表的语法,然后在生成一个SQLite的数据库。实际操作起来不是特别方便,我选择了这个回答下面的方案。 得益于dumblob这位开发者开源的这个项目,我在服务器端通过mysqldump和它的脚本生成了一个SQLite3的DB,将其考到本地。 由于这个脚本只是生成表结构的,并没有将数据导入进来,所以下一步的计划是将数据导入到新生成的SQLite3DB中。 在导入的过程中发现了,若按照正常的生成语句是无法写入NULL数据 template = models.IntegerField(blank=True)

  • Domon
    Domon
2 min read
Python

Python安装virtualenv

今天在Youtube上看一个视频教程的时候,才知道Python下面有这样一个好东西,有点类似Docker,实际上又比Docker轻量级很多。Python的优点就是库很多,很方便的站在别人肩膀上快速开发。但这个有点也是一个缺点,在项目比较多的情况下,由于所有的site-packages都是公用的,这样不便于修改配置。所以,需要有一个类似虚拟环境的东西,来保证对于单个项目中的虚拟环境都是互相隔离的,特别的纯净。 安装的过程实际上也特别的简单: pip install virtualenv 进入你的项目目录中,创建一个虚拟的环境: cd yourproject virtualenv —no-site-packages venv 这样一个独立的虚拟环境就设置好了,在项目的目录下多了一个venv,里面包含了Python所需要的环境。接下来以安装Django为例,我们看看怎么使用这个虚拟环境。仔细观察一下 venv/bin/

  • Domon
    Domon
2 min read
Tips

Mac修改通知中心通知的展示时间

我个人有点强迫症,看见有东西闪烁总觉得想去点点 但有时候有比较矛盾,通知中心的通知,有时候需要短暂的看一看了解就可以了。但是默认Mac的展示时间较长,我想能不能通过设置去修改掉。 Google了下,找到了解决方案: defaults write com.apple.notificationcenterui bannerTime 将上面的#设置为自己需要的秒数就可以了,我目前设置的5秒,感觉还不错,网易云音乐、邮件的提示也就短短5s就过去了,不碍眼。 要是想恢复到系统默认的参数,用下面的命令就好了: defaults delete com.apple.notificationcenterui bannerTime

  • Domon
    Domon
1 min read
Android

Retrofit获取网络Dom数据

前两天在一个小事情上面卡壳好久,需求是这样的,我想通过jsoup去解析一个数据源。通过Retrofit处理这个请求,但是一直会出问题。单步调试才发现问题的所在,response.body()中的数据并不是我想要的。我比较需要response.body().raw()里面的数据,但是官方没有这个方法获取。愁的我继续看官方的API,后面才发现,需要这样将response.body().toString()改成response.body().string(),万事大吉。得到了我需要的网页源数据。

  • Domon
    Domon
1 min read
Python

Python安装包失败问题

由于需要使用AVOS的SDK,在安装的过程中出现了这样的问题: ** Command python setup.py egg_info failed with error code 1 in ** 我开始以为是权限的问题,加了sudo依然如此 查了下日志,没看出来有什么 在SOF上面也搜索到了几个比较高的投票,是指的setuptools的问题,我按照上面的方法去处理的但是仍然不对。 仔细的研究了一番,一个细节让我发现了。我的IDE环境默认的Python执行版本是2.5,但是终端是2.7的。遂将IDE中的版本修改后,就好了。。

  • Domon
    Domon
1 min read
Tips

电信网通服务器基础知识

电信 网通 这种叫ISP,属于给我们提供互联网服务的运营商(类似可以想,手机有 移动、联通、电信给手机信号)最早的时候,互联网那边跨运营商数据过不去,这也是最早pc网游的时候,就区分了电信、联通服务器。即家里带宽是电信提供的,就注册电信的游戏服务区玩游戏。现在随着技术的发展,可以做到互联互通了,但是有一定损耗。即家里的带宽是电信提供的,你可以选任何的游戏区,因为做到了互联互通。互联互通的前提,现在都是同一个游戏的服务区做了双线or多线操作,自动判别用户来源,切换到不同的服务路线上去。

  • Domon
    Domon
1 min read
IT

几分钟快速入门Python

获取代码:[learnpython.py](https://learnxinyminutes.com/docs/files/learnpython.py) Python由Guido Van Rossum在1991年创造的。它是现今存在的最流行的语言之一。我喜欢上Python是因为其简洁的语法。它基本上通过伪代码执行。 注意:这篇文章适用于Python 2.7,但可能适用于Python 2.x。Python 2.7将在2020年停止支持。 写的Python代码,同时兼容Python 2.7 和 3.x是完全有可能的。

  • Domon
    Domon
16 min read
Tips

三星美版s6处理运营商问题

手机环境美版G920P(我这是一个小运营商的,但是可以刷G920P的其他系统)由于自己手机的APN设置一直有问题,无法正常使用电信的数据流量。故有了这这么多其他的操作。前言打电话询问了电信人工台,目前的APN信息为:用户名:ctwap@mycdma.cn 密码:vnet.mobi实测需要修改MCC:460  MNC:03(MCC为国际的代码,460带表中国;MNC是一个两位的十进制数)奇怪的就是自己没法把默认的MNC:11改成03,每一次保存的时候都自动删除了。蜜汁奇怪找了很多XDA论坛的帖子和国内少有的一点资源,发觉可能是/System/build.prop里面可以设置,so let's do this!

  • Domon
    Domon
3 min read
Tips

更改键盘按键

为什么要更改按键 键盘布局对于我这样有OCD的人来说,实在是痛苦的。我讨厌不顺手的东西,这也是为什么我一定要求画一定的时间来让自己的软件或者一些环境顺手。“工欲善其事必先利其器”,So 小到字体颜色,大道整个键盘布局,我都会一丝不苟的搭建出让我顺心如意的赶脚。 至少我觉得Ctrl <->Caps它们两个对调才对啊,不然用电脑是多么让你抓狂的一件事情。什么?为什么,因为之前Unix标准的键盘格式就是这样。如图: 这个是年代久远的IBM 5150型电脑所配备的键盘,很带感有没有 若你是一个机械键盘用户,那还是不用往下看了吧。好多的机械键盘都有硬件开关转换这两个键,更有良商会给你陪两个和标准键盘键帽大小相反的Ctrl+Caps。麻麻再也不会觉得键盘突兀了。 废了这么多的话,还没有进入重点。有没有觉得你的键盘不顺手,或者说你的小拇指太短,

  • Domon
    Domon
4 min read