MySQL 隐式转化整理

前几天在微博上看到一篇文章:价值百万的 MySQL 的隐式类型转换感觉写的很不错,再加上自己之前也对MySQL的隐式转化这边并不是很清楚,所以就顺势整理了一下。希望对大家有所帮助。

当我们对不同类型的值进行比较的时候,为了使得这些数值「可比较」(也可以称为类型的兼容性),MySQL会做一些隐式转化(Implicit type conversion)。比如下面的例子:

mysql> SELECT 1+'1';
        -> 2
mysql> SELECT CONCAT(2,' test');
        -> '2 test'

很明显,上面的SQL语句的执行过程中就出现了隐式转化。并且从结果们可以判断出,第一条SQL中,将字符串的“1”转换为数字1,而在第二条的SQL中,将数字2转换为字符串“2”。

MySQL也提供了CAST()函数。我们可以使用它明确的把数值转换为字符串。当使用CONCA()函数的时候,也可能会出现隐式转化,因为它希望的参数为字符串形式,但是如果我们传递的不是字符串呢:

mysql> (更多…)

退出当前 Bash Shell 并不保存历史的 5 种方法

某些时候我们希望在退出 Bash Shell 的时候不要保存执行命令的历史记录,那么可以用以下几种方法来实现:

先说两个不影响以前的历史记录的方法:

1. 修改 HISTFILE 变量

unset HISTFILE && exit

2. 直接 Kill 当前 Shell

kill -9 $$

下面三个方法会清除所有的记录:

3. 清除历史记录并退出

history -c && exit

4. 设置历史记录保存数量为 0 条并退出

HISTSIZE=0 && exit

5. 删除历史记录文件并修改 HISTFILE 变量

rm -f $HISTFILE && unset HISTFILE && exit

如果你想每次都自动执行这些命令,可以在将对应的指令添加到 ~/.bash_logout 文件中,或者使用 alisa 功能。

译自:http://www.if-not-true-then-false.com/2010/quit-bash-shell-without-saving-bash-history/

搭建需要身份认证的 Squid 代理

1. 安装 Squid

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install squid

或者

yum install squid

2. 配置 HTTP 代理
注意,在 Ubuntu 下配置文件的默认位置可能是 /etc/squid3/,下面均用 CentOS 的 /etc/squid/ 举例,请自行替换。
基础设置:
首先设置允许访问该代理的 IP 列表:

# /etc/squid/squid.conf
acl client src 12.34.56.78 #客户端1 IP 地址
acl client src 21.43.56.78 #客户端2 IP 地址
...
http_access allow client

注意这几行要加在配置文件原有的

http_access deny all

之前,不然不会生效。
然后重启 (更多…)