Monthly Archives: June 2011

LuManager安装过程导入Mysql失败的解决办法

LuManager是一个优秀的国产Linux服务器管理软件,集成了Apache,Nigix,MySQL,FTP,Bind,Memcache,PHP5等软件包,可以实现Apache与Nigix的一键切换,多服务器负载均衡,域名智能解析,用户管理,流量监测功能等。可以通过Web界面来管理整个服务器,还能一键安装DedeCMS,Discuz!等Web应用程序。

LuManager在安装和使用过程中可能碰到导入Mysql失败的情况。

一般有2种情况:

情况1 安装MySQL时出错

Mysql 安装成功,继续安装LuNamp1.0

Mysql was successfully installed! Continue…

已耗时:30 分钟

Runtime: 30 分钟

ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)

MySQL数据导入不成功,可能是数据库没启动,或者是MySQL没安装成功,请重装一次试试!

Mysql data was not imported!

LuNamp安装失败

LuNamp was install failed

分析:

原来系统安装了一个MySQL,在系统原有MySQL没有停止服务的时候开始安装了LuManager,有可能是原有MySQL服务产生了影响。

解决:

杀死系统中正在运行的MySQL

方法1

如果你知道原有的MySQL服务器root用户密码,那么通过这个命令就能停止(忘记密码的看方法2):

mysqladmin -uroot -p’password’ shutdown

注意:

1. /etc/init.d/mysql stop 并不是正确的停止mysql服务的方法!

2. 如果你试图通过 /usr/local/LuNamp/cmd 目录下的 mysql-stop 来停止服务,那么你可能会碰到如下提示:

protest1:/usr/local/LuNamp/cmd# ./mysql-stop

1

MySQL manager or server PID file could not be found! failed!

可以通过方法2来解决

方法2

首先确保当前是root用户,运行如下命令:

protest1:/usr/local/LuNamp/cmd# ps -Af | grep mysqld

返回结果如下(注意加粗的那一行,那个PID就是MySQL的进程ID):

root      6928     1  0 Jun21 ?        00:00:00 /bin/sh /usr/bin/mysqld_safe

mysql    17427  6928  0 14:56 ?        00:00:00 /usr/sbin/mysqld –basedir=/usr –datadir=/var/lib/mysql –user=mysql –pid-file=/var/run/mysqld/mysqld.pid –skip-external-locking –port=3306 –socket=/var/run/mysqld/mysqld.sock

root     17428  6928  0 14:56 ?        00:00:00 logger -p daemon.err -t mysqld_safe -i -t mysqld

root     17460 17340  0 14:58 pts/2    00:00:00 grep mysqld

接着运行

protest1:/usr/local/LuNamp/cmd#Kill 17427

杀死了MySQL进程后,重新运行./zijidelu_install.sh就可以了

情况2 进入系统时出错,提示:

Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock'(2)

截图:

解决方法:

首先参考情况1的方法1或者方法2来杀死当前正在运行的MySQL服务,然后以root用户身份进入

/usr/local/LuNamp/cmd

运行当前目录的mysql-start

protest1:/usr/local/LuNamp/cmd#./mysql-start

然后刷新LuManager的Web界面应该就能顺利进入了:-)

 

WinSCP跨Linux(多Linux台机器之间)拷贝传输文件

 

这纯属一个使用技巧,找了很多LinuxWindows客户端,貌似都不能在同一个用户界面上跨机器拷贝传输文件,用来用去还是WinSCP顺手,以前跨机器传输的时候都是开多个窗口,拖放。今天偶然发现WinSCP也可以在同一个用户界面上跨机器拷贝传输文件。

 

首先要确保WinSCP的工具栏“会话按钮”是显示状态,方便在多台Linux之间切换界面

WinSCP会话按钮

点击“会话按钮”工具栏的倒数第二个按钮,可以登录更多的Linux机器(注意:要拷贝的文件的目标机器必须先在这里登录)

WinSCP打开更多会话

在某一台需要拷贝的文件上单击鼠标右键,选择“远程复制”

WinSCP远程复制菜单

在新弹出的窗口中“目标会话”就可以选择其他的Linux机器以及对应的目录了。

WinSCP远程复制对话框

缺点就是不能同时拷贝到多台机器,以及文件拷贝实际上是先拷贝到本地,再拷贝到远程

Linux下Erlang中无法运行odbc:start()的解决办法

之前碰到过一次,但是当时是和ssl的问题一起解决的,所以再一次的疏忽了,Erlang安装的时候一定要确认所有需要的库都正确安装了。

错误情况是在erl环境中运行 odbc:start(). 的时候

抛出如下的异常:

** exception error: undefined function odbc:start/0

该异常的解决办法和《Erlang {“no such file or directory”,”crypto.app”}  的解决方法》类似首先确认linux下安装了如下的包:

apt-get  install unixodbc unixodbc-dev

接着重新安装erlang解决。

参考:《Linux(Debian)下正确编译安装Erlang的方法

Linux(Debian)下正确编译安装Erlang的方法

因为几次都碰到安装后某些类库无法使用的问题,总结了一下:

apt-get install gcc g++ build-essential m4 libncurses5-dev  libssl-dev  flex unixodbc-dev fop  libwxbase2.8-dev libwxgtk2.8-dev libgl1-mesa-dev libglu1-mesa-dev libglut3-dev libncurses5-dev  libc6  unixodbc  gcj openssl xsltproc

还有一个

apt-get install sun-java6-jdk

如果这个包不能正确安装,说明更新源可能有问题,用编辑器打开/etc/apt/sources.list增加一个

deb http://http.us.debian.org/debian/ lenny main contrib non-free

然后保存关闭再次运行 apt-get update然后再安装,应该就没问题了。

库安装完成后在源码目录下

./configure –prefix=/usr/
make
make install

安装完成后输入erl就能使用最新的Erlang运行环境了

如果是直接apt-get install erlang的,就不用看这个了,我这个是erlang源码编译安装的说明。另外如果有错或者缺少某些类库,还请指出,谢谢。

mysql int整型转换为 IP地址的自定义函数

碰到IP地址与Int转换的问题,得到了一个csv格式的ip列表,但是ip地址却是int格式。因为使用的时候主要是在数据库里使用,所以写个程序转换一把有些麻烦,后来想到mysql里面有自定义函数,于是尝试了一把,顺利解决:-)

DELIMITER $$
USE `iptest`$$
DROP FUNCTION IF EXISTS `int2ip`$$
CREATE DEFINER=`root`@`%` FUNCTION `int2ip`(num BIGINT) RETURNS VARCHAR(255) CHARSET utf8BEGIN     DECLARE result VARCHAR(255);    SET result = CONCAT( CAST((num DIV 16777216% 256) AS SIGNED), ‘.’,  CAST(num DIV 65536 % 256 AS SIGNED ), ‘.’,  CAST(num DIV 256%256 AS SIGNED ), ‘.’,  CAST(num%256 AS SIGNED ));RETURN result;    END$$
DELIMITER ;

使用的时候:

Select int2ip(`ip`) from table;

附int整型和ip转换的公式,摘自:

Linux(Debian)下正确编译安装Erlang的方法

IP Address = 202.186.13.4
w = 202, x = 186, y = 13 and z = 4
INT IP Number = 16777216*202 + 65536*186 + 256*13 + 4
= 3388997632 + 12189696 + 3328 + 4
= 3401190660
INT 转 IP:
w = int ( IP Number / 16777216 ) % 256
x = int ( IP Number / 65536 ) % 256
y = int ( IP Number / 256 ) % 256
z = int ( IP Number ) % 256