戊辰人博客

青,取之于蓝而青于蓝;冰,水为之而寒于水。

MySQL忘记root密码的解决方法

日期:2015年01月21日 作者: 分类:数据库 阅读:461

试验环境:CentOS 6.4 32位 + MySQL 5.1

1. 修改MySQL的登录设置

vi /etc/my.cnf

在[mysqld]的段中加上一句:skip-grant-tables

例如:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
skip-grant-tables

保存并且退出vi

阅读全文…

被用滥了的用户体验

日期:2015年01月16日 作者: 分类:互联网 阅读:467

什么是用户体验?所谓用户体验就是用户使产品的过程中建立起来的纯主观感受。当然,说到用户体验,肯定是指好的体验了。

UserExperience

 

在做开发的两年的时间里,经常听到别人说用户体验。记得在公司进行开发任务时,负责前端的同事经常说为了增强用户体验,对哪里进行怎样怎样的改进。但从客观讲,使用起来一点都不舒服,甚至主要的功能都没有,只是他个人认为那样使用好,就觉得是好的用户体验了。我觉得,一个产品,要想有好的用户体验,要从以下几点考虑:

阅读全文…

屏蔽Gmail是历史的倒退

日期:2015年01月15日 作者: 分类:互联网 阅读:523

在谷歌正式“退出”中国大陆五周年的前夕,谷歌广受欢迎的Gmail邮件系统被中国彻底屏蔽了,引起业内广泛关注,一个电子邮件为什么会被屏蔽,其背后的原因是什么,至今仍然是个不解之谜。

电子邮件,做为一个最古老的互联网服务,比互联网出现时间还早,电子邮件诞生在1970年代,据目前已经有40多年的历史了。电子邮件虽然古老,但生命力极强,据统计,全世界每天发送的电子邮件达到1880亿封,超过其他任何通讯方式。

电子邮件的流行有历史原因,也因为其开放的特性。不像其他封闭的互联网服务,电子邮件系统是完全互相开放的。任何电子邮件服务商都可以向世界上任何其他服务商发送邮件,双方不需要有任何事先的协商、接触。

阅读全文…

360想做国产操作系统之感想

日期:2015年01月15日 作者: 分类:互联网 阅读:494

据说,360真正的目的不是做安全卫士for Linux,而是做国产操作系统。

看到这个消息时的第一反应就是:oh, my god,Linux世界将开始被污染了。更有消息称360已战略投资Deepin,其产品360安全卫士 for linux仅支持Deepin。难道360真正的目的是做国产操作系统?我的心脏已经有点受不了了,如果是360自己做操作系统,它爱怎么折腾就怎么折腾,但是它染指到我目前主要使用的操作系统Deepin的话,心情就有点不美丽了。

deepin

 

再联想到前段时间的360安全卫士for linux,根据社区使用反映的结果来看,360的出现只是在破坏开源Linux世界。个人认为,Deepin是国产系统中最好用的系统了,如果她被360插了,还有什么系统我可以选择?

阅读全文…

将国产Windows应用移植到Linux

日期:2015年01月14日 作者: 分类:互联网 阅读:634

Deepin与CrossOver合作

中国Linux发行版deepin宣布携手美国CrossOver公司,向广大Linux用户征集Windows应用优先移植名单。在公布的移植名单中,涵盖了美图秀秀、百度云网盘、QQ旋风下载、福昕PDF阅读器和益盟爱炒股等国人常用软件,普通用户均可向该移植名单提出建议,该移植名单的软件正在不断增加。deepin宣布将在本年内,完成Windows下最为常用的50款应用的移植工作,并且也会积极和相关厂商进行商务合作,争取让这些优秀的应用早日本地化。

为了解决大家对Windows独占应用的需求,deepin已和CodeWeavers公司达成合作关系,在2014年12月31日发布的deepin2014.2中,为大家带来了第一款移植应用——QQ6.7。

 

阅读全文…

关闭端口步骤(CentOS/RHEL 6)

日期:2015年01月14日 作者: 分类:运维 阅读:473

试验环境:CentOS 6

1.找到相应端口的程序

    命令:netstat -tnlp | grep 111

    结果:tcp 0 0 :::111 :::* LISTEN 990/rpcbind

2. 找到程序安装在哪里

    命令:which rpcbind

    结果:/sbin/rpcbind

3. 找到软件包

    命令:rpm -qf /sbin/rpcbind

    结果:rpcbind-0.2.0-11.el6.x86_64

4. 找到可能关闭的方法

    命令:rpm -qc rpcbind | grep init

    结果:/etc/rc.d/init.d/rpcbind

5. 立即关闭

    命令:/etc/init.d/rpcbind stop

Oracle中网络配置文件详解

日期:2015年01月13日 作者: 分类:数据库 阅读:555

oracle网络配置

三个配置文件 listener.ora、sqlnet.ora、tnsnames.ora ,都是放在$ORACLE_HOME/network/admin目录下。
英文说明:

The sqlnet.ora is an optional file expressing more parameters about the connection (eg: the trace level for debugging, the types of  authentication you would like to support and so on). It may be found on the client or the server.
The tnsnames.ora is used to find a Net8 listener and connect to it and pass to it the details of the database instance youwould like to connect to. It will be found on the client side. Note that a SERVER can be a client of another database so it is typical to find it on the SERVER as well.
The listener.ora is used to setup the configuration of the net8 listener. to specify the port it will listen on, give it the details of the databases it can connect to and so on. This file is on the SERVER only.

1.  sqlnet.ora

通过这个文件来决定怎么样找一个连接中出现的连接字符串

例如我们客户端输入

sqlplus sys/oracle@ora

假如我的sqlnet.ora是下面这个样子

SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME)

那么,客户端就会首先在tnsnames.ora文件中找ora的记录.如果没有相应的记录则尝试把ora当作一个主机名,通过网络的途径去解析它的 ip地址然后去连接这个ip上GLOBAL_DBNAME=ora这个实例,当然我这里ora并不是一个主机名

如果我是这个样子

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

那么客户端就只会从tnsnames.ora查找ora的记录,括号中还有其他选项,如LDAP等并不常用。

阅读全文…

scanf中的格式化

日期:2015年01月12日 作者: 分类:编程 阅读:470

语法:

#include <stdio.h>
int scanf( const char *format, ... );

类似函数有:

int scanf(const char *format, ...);
int fscanf(FILE *stream, const char *format, ...);//指定输入流
int sscanf(const char *str, const char *format, ...);//指定缓存区

scanf()函数根据由format(格式)指定的格式从stdin(标准输入)读取,并保存数据到其它参数. 它和printf()有点类似. format(格式)字符串由控制字符,空白字符和非空白字符组成. 控制字符以一个%符号开始,如下:

控制字符 说明
%c    一个单一的字符
%d    一个十进制整数
%i    一个整数
%e, %f, %g    一个浮点数
%o    一个八进制数
%s    一个字符串
%x    一个十六进制数
%p    一个指针
%n    一个等于读取字符数量的整数
%u    一个无符号整数
%[]   一个字符集
%%    一个精度符号

阅读全文…

RHEL6.4 x86_64静默安装Oracle 11g r2

日期:2015年01月11日 作者: 分类:数据库 阅读:1,384

1 安装环境

操作系统:CetnOS6.4 x86_64

数据库版本:oracle 11g r2

2 准备工作

root用户登录后

unzip linux.x64_11gR2_database_1of2.zip #解压
unzip linux.x64_11gR2_database_2of2.zip

在/etc/hosts文件中增加主机名(通过hostname获得)到回环IP的映射如下:

 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4  
 ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6 
 192.168.1.150    rhel

3 安装必须的包

 yum install gcc
 yum install make
 yum install binutils
 yum install gcc-c++
 yum install compat-libstdc++-33
 yum install elfutils-libelf-devel
 yum install elfutils-libelf-devel-static
 yum install ksh
 yum install libaio
 yum install libaio-devel
 yum install numactl-devel
 yum install sysstat
 yum install unixODBC
 yum install unixODBC-devel
 yum install pcre-devel

阅读全文…

TCP并发服务器/客户端模型

日期:2015年01月10日 作者: 分类:编程 阅读:735

 服务器TCP模型

#include "..."
#include "..."
#include "..."
#define  SERVER_PORT
#define  MAX_LISTEN
int TCPServerModel (unsigned short publicPort)
{
    int sockListen;
    int sockAccept;
    sockaddr_in serverAddr;
    sockaddr_in clientAddr;
    pid_t childPid;
    int addrLen = sizeof(sockaddr_in);  
    // XXX 初始化监听套接口
    sockListen  = socket (AF_INET, SOCK_STREAM, 0);
    // XXX 初始化sockaddr_in
    memset (&serverAddr, 0, addrLen);
    serverAddr.sin_family = AF_INET;
    serverAddr.sin_port = htons(publicPort);
    serverAddr.sin_addr.s_addr = htons(INADDR_ANY);
    // XXX 绑定 - bind()
    bind(sockListen, (sockaddr *)&serverAddr, addrLen);
    // XXX 监听 - listen()
    listen (sockListen, MAX_LISTEN);
    while(true)
    {
        // XXX 接收连接 - accept()
        sockAccept = accept(sockListen, (sockaddr *)&clientAddr, &addrLen);
        if (!(childPid = fork()))
        {
            close(sockListen);
            // XXX 处理客户端数据
            exit(0);
        }
        close(sockAccept);
    }
    return 0;
}

阅读全文…