mysql_connect报告“No such file or directory”错误的解决方法

今天在MacBookPro上安装wordpress时,安装程序一直报错说连不上数据库。mysql客户端可以正常使用,可以确定不是服务器的问题。写了个php脚本单独执行mysql_connect(),发现错误信息居然是“No such file or directory”!这里应该没涉及到文件啊?

在网上搜了一下,找到了这篇文章:mysql_connect and No such file or directory。原来,我的apache/php是mac系统自带的,而mysql是通过MacPorts安装的,它的本地socket设置与默认的不一样,导致php无法找到mysql的socket文件。解决方法上面那篇文章也给了,这里简单翻译一下:

  1. 首先确定是mysql_connect()mysql_pconnect()的问题,故障现象就是函数返回空,而mysql_error()返回“No such file or directory”。
  2. 写个phpinfo页面,找到mysql.default_socketmysqli.default_socketpdo_mysql.default_socket
  3. 启动mysql,执行命令 STATUS; 记下UNIX socket的值。
  4. 如果2和3的值不一样,则打开php.ini(可以从phpinfo页面中找到php.ini的位置,默认是/private/etc/php.ini),将2中提到的三个配置项的值改成3的值。
  5. 重启apache。

(Read More)

修改MySQL的默认编码设置

最近在MacOS下用django框架做web开发,于是用MacPorts安装了MySQL5。 但是测试时django的测试框架会报错,原因是UTF8数据无法插入。

我们知道,MySQL安装完成后默认编码为latin1,并不适合中文应用。 因此我们通常用下面的SQL语句创建数据库:

CREATE DATABASE mydb DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

而django测试框架创建测试数据库时并不会像这样指定编码,因此创建的数据库编码为latin1, 导致加载UTF8数据时就会出错。

貌似django并没有提供创建数据库时指定编码的选项,因此只能修改MySQL服务器的默认编码设置。 下面以MacPorts下的mysql5为例说一下设置方法。

(Read More)

PostScript入门(2)-基础概念

上一章,我们简单介绍了PostScript语言,以及如何在Windows、Linux上 运行PostScript。PostScript是个页面描述语言,也是个编程语言。 本章将介绍PostScript的语言基础概念和图形基础概念, 为以后的几章做个铺垫。

(Read More)

PostScript入门(1)-基本知识

最近由于项目需要,一直在研究PostScript语言。由于这个语言通常用在打印机上, 一般用户接触不到,因此网上的资料也十分罕见。所以,我想把这段时间的心得 整理成一篇入门文章,与大家分享,希望能对想研究打印机的朋友们有所帮助。

这篇文章计划分成七个部分,分别是:

  1. 基本知识(本篇)
  2. 基础概念
  3. 绘图(未完成)
  4. 使用颜色(未完成)
  5. 绘制位图(未完成)
  6. 文本与字体(未完成)

(Read More)

Ubuntu Server 10.04 + RoR安装memo

首先下载Ubuntu Server 10.04的光盘镜像,不到700M。然后安装。 服务安装只选了LAMP Server。

安装后的第一件事就是配置sshd-server。Ubuntu Server默认没有装sshd-server, 所以需要手动安装。

$ sudo apt-get install openssh-server

修改IP地址为固定IP。

$ sudo vi /etc/network/interfaces
...(上面省略)...
auto eth0
iface eth0 inet static
address 192.168.0.10
gateway 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255

$ sudo vi /etc/resolv.conf
nameserver 192.168.0.1

$ sudo /etc/init.d/networking  restart

这样就可以用putty连接了。

接下来安装webmin,方便管理。去webmin主页下载deb包,1.510版本是13.83MB。

$ sudo dpkg -i webmin_1.510-2_all.deb

会提示缺包,执行以下命令:

$ sudo apt-get -f install

安装mod_python:

$ sudo apt-get install libapache2-mod-python

(Read More)

[AHK]Scratch Pad:简单的便笺脚本

以前我非常喜欢IpMsg这款著名的局域网IM软件。不过除了IM之外,我更喜欢用它作为快捷便笺使用——想记录电话号码,或是记录idea,或是给一小段文字排版时,可以随手用Ctrl-Alt-S调出,用完后直接关闭。但后来公司禁止了该软件。没办法,只好用AutoHotKey写一段脚本来实现这个功能了。

代码相当简单,就不再解释了。默认的呼叫和隐藏热键都是Ctrl-Alt-S。

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; scratch pad
^!s::
IfWinActive, Scratch Pad
{
    Gui, Hide
}
Else
{
    If scrachPadCreated <> 1
    {
        Gui, +AlwaysOnTop -MinimizeBox -MaximizeBox
        Gui, Margin, 0, 0
        Gui, Font, s11, MS ゴシック
        Gui, Add, Edit, W400 H300
        scrachPadCreated := 1
    }
    Gui, Show, , Scratch Pad
}

(Read More)

用CloneZilla制作紧急恢复分区

关于一键恢复,网上有很多讨论,也有很多成品, 不过大多数都是基于Ghost实现的,而Ghost是个商业软件,喜欢用开源的人可能比较难于接受吧。 此外,这种一键恢复虽然很容易使用,但可定制性也比较差。所以我考虑使用CloneZilla 来制作一个紧急恢复分区,用来备份/还原系统。

为什么用CloneZilla呢?理由如下:

  • 它是开源软件。
  • 备份形式灵活,可以选择备份分区或整个硬盘,可以选择备份到本地硬盘,也可以备份到网络。
  • 自带的Linux系统可以用作系统维护。

CloneZilla的使用方法就不多说了,自带的中文文档中有极其详尽的截图说明。 另外,制作紧急恢复分区,只有CloneZilla是不够的,还得要grub4dos的帮助。

我的操作系统是Windows XP,硬盘分区默认都是NTFS。下面开始动手吧。

(Read More)

HP-UX下安装打印机小结

系统是HP-UX B.11.31,打印机是HP LaserJet 5100。安装步骤简单描述如下:

安装HP JetDirect Printer Installer for UNIX

# /usr/sbin/swsintall –s /var/tmp/hp11e134.sd J4189-11001C

验证安装是否成功:

# /usr/sbin/swlist -l product J4189-11001C 
# Initializing... 
# Contacting target "systemname"... 
# 
# Target:  systemname:/ 
# 
 
# J4189-11001C        E.10.34  Hewlett-Packard JetDirect Printer Installer for Unix 
  J4189-11001C.HPNPL  E.10.34  Hewlett-Packard JetDirect Printer Installer for Unix 

(Read More)

让vim自动保存

vim是我最喜欢的编辑器,连写邮件都离不开它,所以一直用Thunderbird 2.0 + External Editor插件 + vim这一套组合来写邮件。最近又装了Google日文输入法,可惜它跟vim的兼容性不太好,经常在汉字变换时导致vim异常退出,而写了一半的邮件也就化为泡影了。于是想,如果vim能自动保存就好了。今天研究了一下帮助文件,发现还真能实现类似自动保存的功能。

方法很简单,只需在 $VIM/vimfiles/ftplugin/mail.vim 中加入这样一行:

au InsertLeave *.eml write

该行的意思是:针对所有.eml文件,在退出编辑模式(InsertLeave)时,自动执行write命令。这样就能在每次按Esc键时自动保存了。

顺便贴一下其他有用的配置:

set encoding=utf8
set guifont=MS_ゴシック:h10:cSHIFTJIS
set tw=140                       " 140字符自动换行
set et                           " expandtab,用空格代替Tab键
retab                            " 打开vim时把已有的Tab全部转换成空格
au InsertLeave *.eml write       " 每次退出插入模式时自动保存

(Read More)

关闭VMware的PC喇叭

在VMWare中运行一些Linux上的软件如vi,出错时PC喇叭会不停地叫,很烦人。 其实只要在 C:\Documents and Settings\用户名\Application Data\VMware\config.ini (如不存在请自行建立)中加入这样一行:

mks.noBeep = "TRUE"

就可以从虚拟硬件上关闭VMWare的PC喇叭。

我用的VMware是 VMware Workstation 5.5.1版。

(Read More)