夫天地者,万物之逆旅也;光阴者,百代之过客也。

唐代 李白《春夜宴桃李园序 / 春夜宴从弟桃花园序》

夫天地者,万物之逆旅也;光阴者,百代之过客也。而浮生若梦,为欢几何?古人秉烛夜游,良有以也。况阳春召我以烟景,大块假我以文章。会桃花之芳园,序天伦之乐事。群季俊秀,皆为惠连;吾人咏歌,独惭康乐。幽赏未已,高谈转清。开琼筵以坐花,飞羽觞而醉月。不有佳咏,何伸雅怀?如诗不成,罚依金谷酒数。

译文
  天地是万物的客舍,时间是古往今来的过客。死生的差异,就好像梦与醒的不同,纷纭变换,不可究诘,得到的欢乐,又能有多少呢?古人夜间执着火炬游玩,实在是有道理啊。况且温和的春天以秀美的景色来招引我们,大自然又给我们展现锦绣风光。相聚在桃花飘香的花园中,畅叙兄弟间快乐的往事。弟弟们英俊优秀,个个都有谢惠连那样的才情,而我作诗吟咏,却惭愧不如谢灵运。清雅的赏玩不曾停止,高谈阔论又转向清言雅语。摆开筵席来坐赏名花,快速地传递着酒杯醉倒在月光中。没有好诗,怎能抒发高雅的情怀?倘若有人作诗不成,就要按照当年石崇在金谷园宴客赋诗的先例,谁咏不出诗来,罚酒三杯。

注释
桃花园,疑在安陆兆山桃花岩。从:cóng(旧读zòng),堂房亲属。从弟:堂弟。
逆旅:客舍。 逆:迎接。 旅:客。 迎 客止歇,所以客舍称逆旅。
过客:过往的客人。李白《拟古十二首》其九:“生者为过客。”
浮生若梦:意思是,死生之差异,就好像梦与醒之不同,纷纭变化,不可究诘。
秉烛夜游:谓及时行乐。秉:执。《古诗十九首》其十五:”昼短苦夜长,何不秉烛游。”曹丕《与吴质书》:”少壮真当努力,年一过往,何可攀援!古人思秉烛夜游,良有以也。有以:有原因。这里是说人生有限,应夜以继日的游乐。秉,执。以,因由,道理。
阳春:和煦的春光。召:召唤,引申为吸引。烟景:春天气候温润,景色似含烟雾。
大块:大地。大自然。假:借,这里是提供、赐予的意思。文章:这里指绚丽的文采。古代以青与赤相配合为文,赤与白相配合为章。
序:通“叙”,叙说。天伦:指父子、兄弟等亲属关系。这里专指兄弟。
群季:诸弟。兄弟长幼之序,曰伯(孟)、仲、叔、季,故以季代称弟。季:年少者的称呼。古以伯(孟)、仲、叔、季排行,季指同辈排行中最小的。这里泛指弟弟。
惠连:谢惠连,南朝诗人,早慧。这里以惠连来称赞诸弟的文才。
咏歌:吟诗。
康乐:南朝刘宋时山水诗人谢灵运,袭封康乐公,世称谢康乐。
“幽赏”二句:谓一边欣赏着幽静的美景,一边谈论着清雅的话题。
琼筵(yán):华美的宴席。坐花:坐在花丛中。
羽觞(shāng):古代一种酒器,作鸟雀状,有头尾羽翼。醉月:醉倒在月光下。
金谷酒数:金谷,园名,晋石崇于金谷涧(在今河南洛阳西北)中所筑,他常在这里宴请宾客。后泛指宴会上罚酒三杯的常例。▲

木兰词·拟古决绝词柬友

作者:纳兰性德

人生若只如初见,何事秋风悲画扇。
等闲变却故人心,却道故人心易变。
骊山语罢清宵半,泪雨霖铃终不怨。
何如薄幸锦衣郎,比翼连枝当日愿。

“人生若只如初见,何事秋风悲画扇”是说本应当相亲相爱,但却成了今日的相离相弃。
“秋风悲画扇”:借用汉朝班婕妤的故事。班婕妤曾是汉成帝的妃子,却遭到赵飞燕的妒忌、残害而打入冷宫。南北朝梁的刘孝焯就曾经写过《班婕妤怨》:“妾身似秋扇”,于是就用秋扇比喻被遗弃的女子。
等闲变却故人心,却道故人心易变:意思是说如今轻易地变了心,却反而说情人间就是容易变心的。故人,指情人。
骊山语罢清宵半,泪雨霖铃终不怨:《太真外传》载,唐明皇与杨玉环曾于七月七日夜,在骊山华清宫长生殿里盟誓,愿世世为夫妻。白居易《长恨歌》:“在天愿作比翼鸟,在地愿为连理枝。”对此作了生动的描写。后安史乱起,明皇入蜀,于马嵬坡赐死杨玉环。杨死前云:“妾诚负国恩,死无恨矣。”又,明皇此后于途中闻雨声、铃声而悲伤,遂作《雨霖铃》曲以寄哀思。这里借用此典说即使是最后作决绝之别,也不生怨。
何如薄幸锦衣郎,比翼连枝当日愿:化用唐李商隐《马嵬》:“如何四纪为天子,不及卢家有莫愁”之句意。薄幸,薄情。锦衣郎,指唐明皇。又,意谓怎比得上当年的唐明皇呢,他总还是与杨玉环有过比翼鸟、连理枝的誓愿!意思是纵死而分离,也还是刻骨地念念不忘旧情。
全文就是:与意中人相处应当总像刚刚相识的时候,是那样的甜蜜,那样的温馨,那样的深情和快乐。但你我本应当相亲相爱,却为何成了今日的相离相弃?如今轻易地变了心,你却反而说情人间就是容易变心的。我与你就像唐明皇与杨玉环那样,在长生殿起过生死不相离的誓言,却又最终作决绝之别,也不生怨。但你又怎比得上当年的唐明皇呢,他总还是与杨玉环有过比翼鸟、连理枝的誓愿。

林深时见鹿,海蓝时见鲸,梦醒时见你

不知道为什么,总觉得有些文字赋予一些人真的有一种特别的意义。尤其是在某些时刻,你感受到那种震撼心灵的感觉久久不能平息。

你说:林深时见鹿,海蓝时见鲸,梦醒时见你。

可我:林深时雾起,海蓝时浪涌,梦醒时夜续。

不见鹿,不见鲸,也不见你。

这是全句,但这样的结局太凄凉了,让人忍不住惋惜,忍不住叹息,也倍感遗憾。

所以,后来才有了最后这一句,让人温暖不已。

终于:鹿踏雾而来,鲸随浪涌起,余生终遇你。

愿你历经繁华,归来仍是旧时模样。很羡慕那种从校园到婚纱的爱情,如果可以,希望一生一世一双人。

后注:

林深时见鹿,海蓝时见鲸。然林深时起雾不知归处,海蓝时浪涌,忘而却止步。梦醒时夜起,惊慌失措。鹿不在侧,鲸不予游,亦不见你。等风吹过深林雾,海映晴蓝空,你唤我梦醒,便可见鹿,见鲸,亦见你。

出自:李白《访戴天山道士不遇》中的一句
犬吠水声中,桃花带露浓。
树深时见鹿,溪午不闻钟。
野竹分青霭,飞泉挂碧峰。
无人知所去,愁倚两三松。
能看见鹿,说明已经进入林深处了;看见鲸鱼,说明已进入深海区;而梦醒时见你,也就说明了对“你”的用情至深。

人有欺之,却不自欺

小九:“真跳下去,我也没有把握不会受伤,况且我不能用这种方式证明自己有种,那不过是证明了我是个傻子。他们显然是在欺负我,难道我还要欺负自己吗?若如其所愿,便是其帮凶,没有道理帮着欺负我的人去欺负自己。”

人有欺之,却不自欺,这倒是不错。

世人往往不懂强弱之道,自在之强,看似柔弱。所谓勇者,有勇于敢,亦有勇于不敢,而勇于不敢往往更难。明白这个道理并不容易,你能喊出那一句实不简单。

莫说你有功夫可以跳下去,也可以打得过他们,若是你没有功夫在身,也打不过他们,那是更不能跳了。因为你根本不该这么做、也不能这么做,哪怕受辱骂嘲笑,亦能不跳,则是大勇。

当然有,万事万物都在大道之中。若行止自然,就不必刻意去讲。

来源:徐公子<<太上章>>

dedecms经常出现mysql”连接数据库失败,可能数据库密码不对”解决方案

DEDE 5.5 版本经常出理以下错误

Error page: /dede/xxx

Error infos: DedeCms错误警告:连接数据库失败,可能数据库密码不对或数据库服务器出错

是随机出现并不是一直就这样,这样就可以排除是MYSQL用户名密码设置的问题了。

在网上找了一下基本上可以肯定就是 微软 KB967723 这个补丁所引起来了。

第一种方案

删除 KB967723  补丁 这个不建议大家操作,会引起网络断掉并无法链网的情况。

那我们就用微软件推荐的第二种方案吧

本方法是微软给出的修改注册表修复该Bug的的方法,原因是默认最大的临时 TCP 端口的数是 5000 适用于一节中包含的产品中。 在这些产品中添加一个新参数。 要提高临时端口的上限,请按照下列步骤操作:

1.启动注册表编辑器。
2.在的注册表中找到以下子项,然后单击 参数 :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
3.在 编辑 菜单上单击 新建 ,,,然后添加下面的注册表项:
数值名称: MaxUserPort
值类型: DWORD
值数据: 65534
有效范围: 5000-65534 (十进制)
默认值: 0x1388 (5000 十进制)
说明: 此参数将控制程序从系统

微软官方关于这个补丁的说明:  http://support.microsoft.com/kb/q196271

当您试图从大于 5000 的 TCP 端口连接时收到错误 WSAENOBUFS (10055)

建议大家和我们下面导出来的注册表,导进去就可以了

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"MaxUserPort"=dword:0000fffe

把上面的内存COPY起来 复制到记录本中,保存为 .reg 再双击导入就OK了

不过记得重启一下电脑。

Win下MYSQL主从数据库同步设置实现数据同步更新

系统的需要实时备份,但是之前考虑的webservice备份数据的方法,对程序运行的效率有较大影响。查阅资料后发现,可以设定主从服务器来达到数据备份的目的。数据备份的任务全部交给mysql服务器完成,对团购系统的程序运行影响较少,并且可以达到实时备份的效果

系统的需要实时备份,但是之前考虑的webservice备份数据的方法,对程序运行的效率有较大影响。查阅资料后发现,可以设定主从服务器来达到数据备份的目的。数据备份的任务全部交给mysql服务器完成,对团购系统的程序运行影响较少,并且可以达到实时备份的效果。下面是mysql主从服务器设定的一些步骤(测试环境:主服务器是win2003,mysql版本 5.1.51;从服务器是win7, mysql版本是 5.1.51)。

1、 在主服务器上新增一个用于备份的用户,全局权限设定为RELOAD, SUPER, REPLICATION SLAVE。将要备份的数据库的全部权限分配给改用户,并且该用户可以远程登录主服务器。

2、 在主服务器的my.ini中的[mysqld]下面添加:

server-id=1 #主服务器id

log-bin=D:mysqllogmysql.log #备份

binlog-do-db=tg #备份数据库

3、 重启主服务器。

4、 设定从服务器,在从服务器的my.ini中的[mysqld]下面添加:

server-id=2 #必须与主服务器的id不一致

master-host=***.***.***.*** #主服务器ip

log-bin=D:mysqllogmysql.log

master-user=slave #主服务器上新增的用户名

master-password=123 #密码

master-port=3306 #主服务器端口

master-connect-retry=60 #同步时间间隔为60秒

5、 重启从服务器mysql。在主服务器mysql上运行SHOW MASTER STATUS 记录下File、Position字段值。启动从服务器mysql,运行一下命令:

change master to master_host=***.***.***.*** ;

change master to master_user= ‘slave’;

change master to master_password=123;

change master to master_log_file=mysql.000001 # 刚刚记录的File值

change master to master_log_pos=38392;#刚刚记录的position值,

然后运行 start slave;show slave status如果成功的话,可以返回一条与主服务器有关的数据,

这是回到主服务器上运行 show processlist 就可以查看到从服务器的连接状态。到此主从服务器的设定完成

How to set up mysql master/slave architecture.

来源:【原创】How to set up mysql master/slave architecture. (2008-12-10 09:55)

All the info below should be added in /etc/my.cnf. If you can’t find this file, just use the following statements to find where it is.

  1. To find the location of my.cnf.

ps aux | grep mysql | grep -v ‘grep’ | head -n 1

For example .

[root@localhost ~]# ps aux | grep mysql | grep -v ‘grep’ | head -n 1

root      2952  0.0  0.2   4512  1220 ?        S    16:12   0:00 /bin/sh ./mysqld_safe –defaults-file=/usr/local/mysql/my.cnf

Then we know the correct configuration file is /usr/local/mysql/my.cnf.

We should add the following lines to my.cnf in section [mysqld].

server-id = 1

log-bin=mysql-bin

binlog-do-db=db1

binlog-do-db=db2

binlog-ignore-db=ignore-db1

binlog-ignore-db=ignore-db2

expire_logs_days = 5

max_binlog_size=500M

log-slave-updates

Then restart mysqld manually and execute the following statements in mysql command line client.

  1. To grant valid user to slave.

To assume this thread called A.

grant file,replication slave on *.* to ‘mysql_ms’@’Slave IP’ identified by ‘Your password’;

flush privileges;

For example, if my slave’s ip address is "192.168.4.55". The user is "mysql_ms" and his password is "123456".

mysql> grant replication slave,file on *.* to ‘mysql_ms’@’192.168.4.55’ identified by ‘123456’;

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

Be sure to send the username and password to me.

  1. Lock tables and get the master’s binary log file and position.

flush tables with read lock;

show master status\G

You must not quit the current mysql command line client.

mysql> show master status\G

*************************** 1. row ***************************

            File: mysql-bin.000004

        Position: 595

Binlog_Do_DB: test

Binlog_Ignore_DB: mysql

1 row in set (0.00 sec)

mysql>

Then send the results to me.

  1. Backup exact database.

Now we locked all the tables and got the exact binary log file and position in the previous step. So begin to backup the exact database right now.

Use mysqldump to dump the necessary data to flat file, then use tool named gzip or gzip2 to compress it.

For example, if your database name is db1 and your mysql installation path was added in the environment variable named "PATH".

Use the following statement to backup your databases’ data.

mysqldump -uroot -p –net_buffer_length=10M –max_allowed_packet=11M db1 > db1.txt

Here is my example in my machine, my database name is test.

[root@localhost ~]# /usr/local/mysql/bin/mysqldump -uroot -p –net_buffer_length=100M –max_allowed_packet=120M test > test.txt

To compress the flat text file to a gzip file, using the following command.

gzip db1.txt

Then the compressed file named db1.txt.gz will be generated. You should send this file to me.

After all the above completes, go to thread A and execute the following command.

unlock tables.

Then quit thread A.

  1. What the slave machine want.

User name and password.

Master’s IP address.(192.168.4.54)

Master’s  mysql port.(3308)

Master’s  mysql binary log file and position

Master’s backup data.

  1. The following is the slave configuration.

Add the my.cnf on slave machine and restart mysqld.

[mysqld]

server-id = 2

replicate-do-db=db1

replicate-do-db=db2

replicate-ignore-db=ignore-db1

replicate-ignore-db=ignore-db2

log-bin=slave-bin

  1. Get the master information on slave machine.

Then exit from it and use the following command to import from the backup file in the shell environment.

gzip gb1.txt.gz

mysql –uroot –p –S/tmp/mysql3307.sock < gb1.txt

Enter the mysql command line client.

set @@global.max_allowed_packet=11*1024*1024;

Then exit it and enter it again.

Change master to

master_host=’192.168.4.54’,

master_port=3308,

master_user=’mysql_ms’,

master_password=’123456’

master_log_file=’mysql-bin.000004’,

master_log_pos=595;

start slave;

MySQL:讨人喜欢的 MySQL replace into 用法(insert into 的增强版)

讨人喜欢的 MySQL replace into 用法(insert into 的增强版)

在向表中插入数据的时候,经常遇到这样的情况:1. 首先判断数据是否存在; 2. 如果不存在,则插入;3.如果存在,则更新。

在 SQL Server 中可以这样处理:

 if not exists (select 1 from t where id = 1) insert into t(id, update_time) values(1, getdate()) else update t set update_time = getdate() where id = 1

那么 MySQL 中如何实现这样的逻辑呢?别着急!MySQL 中有更简单的方法: replace into

replace into t(id, update_time) values(1, now());

replace into t(id, update_time) select 1, now();

replace into 跟 insert 功能类似,不同点在于:replace into 首先尝试插入数据到表中,

1. 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据。

2. 否则,直接插入新数据。

要注意的是:插入数据的表必须有主键或者是唯一索引!否则的话,replace into 会直接插入数据,这将导致表中出现重复的数据。

MySQL replace into 有三种形式:

1. replace into tbl_name(col_name, ...) values(...) 
2. replace into tbl_name(col_name, ...) select ... 
3. replace into tbl_name set col_name=value, ...

前两种形式用的多些。其中 “into” 关键字可以省略,不过最好加上 “into”,这样意思更加直观。另外,对于那些没有给予值的列,MySQL 将自动为这些列赋上默认值。

sqlserver 迁移到mysql详细步骤数据库表结构迁移

最近在开发的一个项目,需要从MS SQLServer迁移到MYSQL,以下把迁移过程记录下来,与大家共享!

sqlserver迁移到mysql 在数据库方面的工作主要是表的迁移,以及存储过程的迁移,这里先说说表的迁移.

首先先将MSSQL Server表结构导出为.sql文件. 表迁移,mysql一律不能运行带有[,],dbo.等带有sqlserver特征的脚步, 所以在导出的sqlserver脚步里面,首先要把这些字符全部过滤掉(可使用editplus进行过滤),在表创建方面的不支持的字符如下:[,],[dbo].,GO, on primary,.

在过滤完以上的字符后, 由于导出的sql文件都包含多个表, 为了能够一次性装载完所有的scripts并运行,需要在每个表的create语句后面加上分号, (同时还有加上ENGINE=InnoDB),否则你会发现只能一个一个表的进行运行,比如原来是这样:

CREATE TABLE bmapnamebidsg (
bword nvarchar (100) NOT NULL ,
bids text NULL ,
status int NOT NULL ,
cr_date datetime NOT NULL
)

CREATE TABLE BookStaticSortStatus (
sid int NOT NULL ,
sortStatus int NOT NULL ,
mxReviewStatus int NOT NULL ,
lReviewStatus int NOT NULL ,
up_date datetime NOT NULL
)

改动后是这样的:

CREATE TABLE bmapnamebidsg (
bword nvarchar (100) NOT NULL ,
bids text NULL ,
status int NOT NULL ,
cr_date datetime NOT NULL
)ENGINE=InnoDB ;

CREATE TABLE BookStaticSortStatus (
sid int NOT NULL ,
sortStatus int NOT NULL ,
mxReviewStatus int NOT NULL ,
lReviewStatus int NOT NULL ,
up_date datetime NOT NULL
)ENGINE=InnoDB ;

接下来就是数据类型了!

在数据类型方面,mysql基本对应了sqlserver的数据类型, 向bit,text,varchar,等,都对应得比较好, 但是,mysql并不支持smalldatetime(这个是sqlserver特有的),需要转成datetime,另外, sqlserver中的identity自增长属性在mysql中则表现为auto_increament属性,并且声明该属性的列必须是key!

最后我们看看主键,索引以及缺省值如何对应,一些是MS SQLServer(建一个主键,为两个字段定义缺省值,再为一个字段定义成索引):

ALTER TABLE BookStaticSortStatus WITH NOCHECK ADD
CONSTRAINT PK_BookStaticSortStatus PRIMARY KEY CLUSTERED
(
sid
)

ALTER TABLE BookStaticSortStatus ADD
CONSTRAINT DF_BookStaticSortStatus_status DEFAULT ((-1)) FOR sortStatus,
CONSTRAINT DF_BookStaticSortStatus_up_date DEFAULT (getdate()) FOR up_date

CREATE INDEX [sort2_books] ON [dbo].[books]([s2id]) ON [PRIMARY]

MySQL:

CREATE TABLE `bmapnamebidsg` (
`bword` varchar(100) character set utf8 NOT NULL default ‘1’,
`bids` text NOT NULL,
`status` int(11) NOT NULL,
`cr_date` datetime NOT NULL,
PRIMARY KEY (`bword`),
KEY `bids` (`bids`(1))
) ENGINE=InnoDB DEFAULT CHARSET=latin1

完成以上动作,表结构的迁移就基本完成了!

昙花一现只为韦陀

昙花又叫韦驮花。韦驮花很特别,总是选在黎明时分朝露初凝的那一刻才绽放, 
相传昙花和佛祖座下的韦驮尊者有一段哀怨缠绵的故事,所以昙花又叫韦驮花。 
传说昙花是一个花神,她每天都开花,四季都很灿烂,她爱上了一个每天为她锄 
草的小伙子,后来玉帝知道了这件事情,就大发雷霆,要拆散鸳鸯。玉帝把花神 
贬为一生只能开一瞬间的花,不让她再和情郎相见,还把那个小伙子送去灵柩山 
出家,赐名韦驮,让他忘记前尘,忘记花神。可是花神却忘不了那个年轻的小伙子, 
她知道每年暮春时分,韦驼尊者都会上山采春露,为佛祖煎茶,就选在那个时候 
开花!希望能见韦驮尊者一面,就一次,一次就够了!遗憾的是,春去春来, 
花开花谢,韦驮还是不认得她! 
昙花一现只为韦驮!