首页 > Berkeley DB, Chao Huang > 有朋自远方来!

有朋自远方来!

亲爱的Berkeley DB用户,

倾注了许多的时间和努力,我们很高兴的宣布:Berkeley DB中国开发者的博客已经开通了。我们希望通过它将Berkeley DB产品家族介绍给中文用户,同时也希望能帮助您使用我们的产品。在有些博客中,我们也会谈及一些数据库技术,我们的文化,生活和工作环境等,希望能与您 分享我们的快乐。

欢迎访问我们的中文博客网站: www.bdbchina.com.

Berkeley DB 中国研发团队

Dear Berkeley DB Users,

After a lot of time and effort, we are pleased to announce that our Chinese blogs are now available at: www.bdbchina.com. We hope that the website will introduce the Oracle Berkeley DB Product family to our users for whom Chinese is preferable, and in the meantime could possibly help you use our products. We hope that some of our blogs that cover database techniques, our culture, our working lives and environment would be fun to read as well.

Please visit us at: www.bdbchina.com.

The Berkeley DB China Team

另外: 如果您有Berkeley DB相关问题,欢迎访问Berkeley DB官方论坛, 我们会第一时间在上面给您回复。

分类: Berkeley DB, Chao Huang 标签: ,
  1. zhangxiwl
    2009年2月20日10:35 | #1

    您好!我是在最近开始学习BDB的,
    问一个菜鸟问题..在我将程序烧写到ARM板上运行时,
    出现了下面的错误。
    我在测试程序中加入了环境,DB_ENV->open的flag包括DB_CREATE,
    请问是否是flag设置的问题?
    谢谢~

    unable to initialize mutex: Function not implemented
    PANIC: Function not implemented
    unable to join the environment
    DB_RUNRECOVERY: Fatal error, run database recovery

  2. David
    2009年2月25日17:22 | #2

    你用的是什么操作系统,怎么build的? 错误信息里面提到mutex函数未实现,这可能是build的时候,没有正确地configure。Berkeley DB的mutex是非常大地依赖于操作系统和硬件平台的。

  3. David
    2009年2月25日17:24 | #3

    另外,你可以把问题帖到OTN berkeley db 官方论坛(http://forums.oracle.com/forums/category.jspa?categoryID=246)上面,把你的用例详细地描述,包括操作系统版本, cpu, 打开数据库环境和数据库的参数等等。 最好能贴出来出错代码。

  4. 周华兵
    2009年4月14日20:36 | #4

    请问在北京有BDB职位吗?

  5. chaohuang
    2009年4月14日21:09 | #5

    目前暂时没有北京的职位,将来可能有。如有兴趣请保持关注。

  6. Harris
    2009年4月21日21:57 | #6

    刚刚接触DBD不久, 发现他很强大。。。

    有两个问题想请教一下各位DBD前辈:
    1、4.4版本的DBD,是否不支持数据文件路径中含有中文?
    2、如果我想把DBD的版本升级到4.7,请问是否更新库文件就可以了?

  7. davidzhao
    2009年4月23日13:31 | #7

    0. 是BDB而不是DBD。
    1. bdb支持中文或者其他国际字符路径,只需要提供UTF8编码字符串即可。其他编码不认识。
    2. 下载后可以编译出来一个工具叫做db_upgrade,你需要使用这个来升级数据库文件。然后还要升级库文件、头文件,即使用4.7的头文件和库文件;你的代码可能也需要微小的改动,因为已经API 有微小改动。

  8. BDBhota
    2009年6月1日00:31 | #8

    现在有没有关于BDB4.7.25的性能测试报告?
    我在oracle上看到有4.3的性能测试报告,但没有看到过4.7.25的。
    可不可以仿照4.3的报告,作个测试给出一个4.7.25的报告?

    另外,我是在linux上访问mssql2005的,现在要把BDB4.7.25嵌入到linux的程序中,
    这时BDB就相当于mssql的一个缓存,当BDB中的数据修改后,还需要把数据同步到mssql中去,同样,mssql中的数据也要同步到BDB中。
    请问这样的应用架构,怎样做好BDB和mssql的同步?
    我们在linux上的这个程序是一个服务器程序,要求得性能很高。

    另外,BDB是否可以应用intel 的TBB 技术,来支持多线程多核。
    这个具体怎么做比较好?
    如果可以的话,请发邮件到我的邮箱。
    希望得到您的答复

  9. chaohuang
    2009年6月1日11:00 | #9

    @BDBhota
    Hi BDBHota,

    BDB4.7.25自带了一个性能评估工具,叫test_micro。可以在您的环境下运行test_micro看看具体性能指标。

    另外:
    1. 如果您有Berkeley DB相关问题,欢迎访问Berkeley DB官方论坛,我们会第一时间在上面给您回复。此中文博客不做support。
    2. 我理解上,您做的可能是一个商业产品/项目。基于BDB的双license授权和为您产品计,建议您购买BDB的支持服务。如有此方面需求,我很愿意为您联系Oracle的销售团队。我的联系方式:chao.huang@oracle.com。

  10. luke
    2009年6月25日21:31 | #10

    您好,我最近在做berkeley db方面的研究,您这儿有伯克利db java版的architecture 白皮书吗?就是oracle官网上的那个pdf文件,在官网上总是下不下来,在网上找了好久也没有找到。如果可以请发一份到我的邮箱好吗?谢谢。我的邮箱地址是 luke03011@tom.com

  11. chaohuang
    2009年7月1日13:41 | #11

    @luke
    Hi Luke, Oracle的官方网站的服务器在北美,你可在网络不繁忙的时候(如晚上23:00以后)去下载。如果你还是无法下载,请给我发email。

  12. danny
    2009年11月4日10:18 | #12

    red hat enterprise 4 linux 下安装 Berkeley DB

    ../dist/configure执行后,没有生成makefile文件夹。什么问题呢?

    初学,问题问得过于笼统,请指教!!

  13. 2009年11月4日20:04 | #13

    @danny
    Danny,你好。

    要生成的是Makefile,是个文件。请做以下检查:

    1 确定一下自己是否是在db/build_unix目录下执行../dist/configure,
    2 运行../dist/configure的时候, 是否有错误提示?错误提示是什么?
    3 如上步成功,查看Makefile文件是否存在,也可以直接敲入make。
    4 检查自己环境变量CPPFLAGS, CFLAGS, LDFLAGS, LIBS等设置是否正确, 最简单的是建立一个最简单的C程序,然后用gcc $CPPFLAGS $CFLAGS your_example_name.c $LDFLAGS $LIBS, 看看编译是否成功, 不成功则说明环境设置有问题。

    如果都没问题,程序还是没有编译出来, 请发configure生成的config.log给我: winter.zhang@oracle.com, 请用gmail的邮箱。

  14. danny
    2009年11月5日16:38 | #14

    @winterzhang

    运行../dist/configure提示的内有有很多,最后两行是

    configure: error: in’ /home/dannylau/db-4.8.24/bulid_unix’:
    configure: error: no acceptable C compiler found in $PATH

    make 文件 不存在.make 命令也因为没有make文件不能执行。

    环境变量不是很懂,不知道怎么查询。从错误提示来看,应该是C编译的问题吧。但是不知道怎么解决。

  15. 2009年11月16日11:18 | #15

    @danny
    你好,danny,

    这是configure程序未能找到可用的C编译器。解决方案无外乎于:
    1 如果确实未安装, 则安装之。 具体方案因系统而异。 比如, 对于Ubuntu, 可以用apt-get来安装gcc的编译器;而对Fedora,则是用yum;其他的我没用过,不在此列举出。 所以,你要先知道自己所用的系统是什么, 在百度/google一下如何在之上安装编译器。

    2 如果安装了没找到, 说明不再PATH里面。 只要将其加入PATH环境变量就好了。 至于在Linux中设置PATH环境变量的文章, 网上一大堆。

  16. 柳松
    2010年1月11日00:15 | #16

    您好,我是berkeley db得忠实用户!我几乎所有项目中能用到数据存储的地方都用了berkeley db!

    berkeley db为我提供方便的时候我也想问一个问题,它的许可证究竟是怎样的?

    我看到一些ubuntu中有oracle berkeley db 的package,难道这么说他是开源自由软件?可我记得商业使用是要收费的啊?

  17. chaohuang
    2010年1月11日10:37 | #17

    @柳松
    谢谢您的留言,很有鼓励。也很高兴了解到在您的项目中部署了大量Berkeley DB!

    关于授权的问题,可以参考这篇文章: http://www.bdbchina.com/2009/11/berkeley-db%E4%B8%89%E5%A4%A7%E4%BA%A7%E5%93%81%E6%94%B6%E8%B4%B9%E6%A8%A1%E5%BC%8F/。

    具体来说,随着Ubuntu Linux 一起发布的应该是较早版本的Berkeley DB,根据当时版本的授权是允许免费使用的 – 只是商业用户如果作商业用途,建议购买授权。

  18. gwconan
    2010年3月5日15:20 | #18

    问题描述:这个环境可以编译早期c开发的程序,但是用C++的编译就有问题
    编译的文件是EXAMPLE_cXX中的AccessExample.cpp
    link:
    -L/usr/lib -L/usr/local/Berkeley/lib -L../../lib -ldb

    ERROR:
    AccessExample.cpp:167: undefined reference to `Db::~Db()’

  19. chaohuang
    2010年3月5日15:34 | #19

    @gwconan
    你能提供具体一些的信息吗?比如什么版本,什么平台,什么编译器等。

    还有,你的问题是什么(也就是:你想我们怎么帮你)?

  20. 2010年3月22日12:47 | #20

    @gwconan
    1 首先请问是用的我们的Makefile执行make excxx_access还是自己手动执行链接的?
    2 手动连接的话, 应当链接的是c++的library,也就是-ldb_cxx
    3 要产生c++ library, 需要在configure的时候,传入–enable-cxx。

  21. polarbear
    2010年4月17日23:09 | #21

    您好:
    我安装的BerkeleyDB5.0.21,安装过程如下:
    1.进入db-5.0.21/build_unix目录
    2.运行../dist/configure –enable-cxx
    3.make
    4.make install
    5.在/etc/ld.so.conf中末尾加入:/usr/local/BerkeleyDB.5.0/lib
    6.输入 ldconfig
    7:运行: g++ BDB_test.cpp -o BDB_test
    error:db_cxx.h没有该文件或者目录…
    是什么原因呢,麻烦及时解答一下,谢谢了。。
    我是新手,把网上说的方法都用了,还是不行。

  22. polarbear
    2010年4月17日23:10 | #22

    我忘记说一点了,我只想把C++功能搞好就可以了。。

  23. 蔡瀛
    2010年4月18日12:35 | #23

    @polarbear
    你需要指定db_cxx.h头文件的位置。。。 检查一下/usr/local/include下面有没有db_cxx.h,或者手动指定头文件的具体位置 g++ BDB_test.cpp -o BDB_test -I

  24. polarbear
    2010年4月18日14:45 | #24

    我如何才能不用手动链接呢,目录太长,每次都输入,太麻烦了。
    但是我在安装目录build_unix下,运行ldconfig 为何还不可以呢?还得麻烦您给看下。。
    我看网上都是这么做的,为什么我的还是不行呢??
    谢谢了。。

  25. polarbear
    2010年4月18日16:08 | #25

    您好:
    http://www.sqlite.com.cn/MySqlite/14/393.Html
    上面这个链接是我写的BDB_test.cpp 程序,我完全按照这里面的内容写的。
    g++ BDB_test.cpp -I/usr/local/BerkeleyDB.5.0/include -o BDB_test
    下面是错误提示信息:
    BDB_test.cpp: In function ‘int main()’:
    BDB_test.cpp:86: warning: unknown conversion type character ‘k’ in format
    BDB_test.cpp:86: warning: unknown conversion type character ‘k’ in format
    /tmp/ccEATh7W.o: In function `main’:
    BDB_test.cpp:(.text+0×1e0): undefined reference to `DbEnv::DbEnv(unsigned int)’
    BDB_test.cpp:(.text+0×2b3): undefined reference to `Db::Db(DbEnv*, unsigned int)’
    BDB_test.cpp:(.text+0×34b): undefined reference to `Dbt::Dbt()’
    BDB_test.cpp:(.text+0×3dd): undefined reference to `Dbt::Dbt()’
    BDB_test.cpp:(.text+0×94d): undefined reference to `Dbc::get(Dbt*, Dbt*, unsigned int)’
    BDB_test.cpp:(.text+0×9ef): undefined reference to `Dbt::~Dbt()’
    BDB_test.cpp:(.text+0xa01): undefined reference to `Dbt::~Dbt()’
    BDB_test.cpp:(.text+0xa0d): undefined reference to `Dbt::~Dbt()’
    BDB_test.cpp:(.text+0xa1f): undefined reference to `Dbt::~Dbt()’
    /tmp/ccEATh7W.o:(.gcc_except_table+0×14): undefined reference to `typeinfo for DbException’
    /tmp/ccEATh7W.o:(.gcc_except_table+0xd8): undefined reference to `typeinfo for DbException’
    collect2: ld returned 1 exit status
    但是,如果我的程序是这样的话:
    #include
    #include
    #include
    using namespace std;

    DbEnv *g_env = NULL;
    Db *g_db = NULL;
    int main()
    {
    return 0;
    }
    用上面的命令编译是可以调试通过的。
    实在不知道是为什么,网上的资料查了不少,但是没有解决掉,还得麻烦您给看看。
    谢谢了。。

  26. polarbear
    2010年4月18日16:58 | #26

    上面的三个不完整的include文件改为:
    #include
    #include
    #include
    不知道啥原因,内容没有正常显示。。

  27. polarbear
    2010年4月18日16:59 | #27

    include的内容为:我参考的网站链接的头文件,发出去显示不出来。。改正下。。

  28. windsay
    2010年4月19日19:36 | #28

    打开 /etc/ld.so.conf
    添加新的一行 /usr/local/BerkeleyDB.5.0/lib
    编译的 时候 用 g++ BDB_test.cpp -I/usr/local/BerkeleyDB.5.0/include -L/usr/local/BerkeleyDB.5.0/include -ldb
    -o BDB_test
    看看行不行,缺啥函数去查对应的库补上

  29. windsay
    2010年4月19日19:39 | #29

    @windsay
    上面编译命令写错了, 应该是
    g++ BDB_test.cpp -I/usr/local/BerkeleyDB.5.0/include -L/usr/local/BerkeleyDB.5.0/lib -ldb

  30. 2010年4月20日16:10 | #30

    @polarbear

    == 首先谢谢windsay的回答。 ==

    polarbear你好,

    首先,对于使用Db/DbEnv等类(应该绝大部分都是)的C++程序, 应当去链接C++而不是C的静态/动态库。 所以, 你的程序应当使用-ldb_cxx,而不是-ldb。-ldb_cxx选项是必须加上的, 因为默认情况下,编译器只会去链接编译器需要以及系统必须的库(libc.so, libstdc++.so等)。

    其次, 修改过的那个程序可以编译运行的原因是: 修改的程序只是用Db/DbEnv定义了两个指针类型的变量而已,并没有调用过任何BDB函数(甚至连构造/析构函数都没调用过)。 这种情况, 编译器不产生未解析引用, 所以编译正常。 运行时也没有需要去动态加载BDB的函数,因而,运行也正常。

    最后, 至于说多次输入长目录觉得麻烦的问题,建议你先写一个极其简单的Makefile,这样将相当相当相当的方便, 因为只需要一个make就可以了。 其他方式还有很多, 比如, 定义g++可以直接识别的C_INCLUDE_PATH变量等等。

  31. polarbear
    2010年4月21日15:38 | #31

    非常感谢winterzhang老师和windsay老师,问题已经解决。。

  32. alex
    2010年4月29日22:03 | #32

    您好:最近刚开始接触BerkeleyDB,我的版本是db-4.5.20.我在虚拟机上编译:#gcc test.c -0 test -I/opt/friendlyARM/root_nfs/BerkeleyDB/include -L/opt/friendlyARM/root_nfs/BerleleyDB/lib – ldb-4.5结果是正确的,可以生成可执行文件,执行的结果也正确的。但是#arm-linux-gcc test.c -o test -I//opt/friendlyARM/root_nfs/BerkeleyDB/include -L/opt/friendlyARM/root_nfs/BerleleyDB/lib – ldb-4.5会出现错误。错误提示:/opt/friendlyARM/root_nfs/BerleleyDB/lib/libd-4.5.so
    collect2:ld returned 1 exit status
    make:***[test] 错误 1

  33. Emily Fu
    2010年5月12日10:06 | #33

    @alex

    你好,请问,在使用“#arm-linux-gcc”时,是否链接的是ARM平台的BDB库?使用gcc和arm-linux-gcc的编译过程略有不同。使用arm-linux-gcc时,configure应指定“–target=arm-linux”或者“–host=arm-linux”。

  34. seraph
    2010年5月27日14:55 | #34

    我在linux2.4上运行Berkeley db 的时候出现以下错误:

    unable to initialize mutex: Function not implemented
    PANIC: Function not implemented
    unable to join the environment
    Environment open failed: DB_RUNRECOVERY: Fatal error, run database recovery

    证实是调用env->open方法是出现的,我在linux下安装好了Berkeley db,编译好后,进行安装,可以正常运行,但我把安装文件复制到另外一台机器上运行时便出现了这个错误,所需的动态库均放在/lib目录下

  35. Emily Fu
    2010年5月31日10:42 | #35

    你好,当移植到其他机器时,需要重新编译(configure+build)BDB
    的库。

  36. polarbear
    2010年6月13日12:43 | #36

    您好:我用下面的命令可以编译通过
    g++ BDB_test.cpp -I/usr/local/BerkeleyDB.5.0/include -L/usr/local/BerkeleyDB.5.0/lib -ldb_cxx
    但是为什么运行的时候提示:
    “打开数据库出错:DbEnv::set_lk_priority: Invalid argument
    段错误”
    呢?
    我之前在自己机器上编译运行都没有问题,但是我到服务器上按照和之前完全相同的办法安装,而且运行完全相同的测试程序,为什么就会出现这个问题呢?

    我在网上查了很多资料,但是都没能解决,希望老师可以尽快解答一下,非常感谢!!

  37. polarbear
    2010年6月22日15:54 | #37

    您好,上一个帖子是我发的,已经发出了十天左右了,怎么还不见解决呢,是不是我的帖子被忽略了啊,再发一个,麻烦老师尽快给解决以下。。先谢谢了。

  38. chaohuang
    2010年6月22日19:08 | #38

    @polarbear
    稍后会有我们的工程师回复你的问题。下次请记得将问题发到BDB 5.0相关的博客。谢谢。

  39. Emily Fu
    2010年6月22日19:13 | #39

    @polarbear

    你好,请重新编译你在服务器上的BDB库,并检查链接的库是否正确。

  40. polarbear
    2010年6月23日19:25 | #40

    @Emily Fu
    您好:
    EmilyFu老师
    我按照你的要求,重新编译了服务器上的BDB库,但是仍然出现相同的问题。
    但是我在自己的机器上用完全相同的方法操作,就没有错误啊,这个问题我在网上查找不到答案啊。碰到这个问题的人比较少啊。
    下面是我的程序。

    #include
    #include
    #include
    using namespace std;
    DbEnv* g_env = NULL;
    Db *g_db = NULL;
    void closeEnv()
    {
    try
    {
    if(g_db)
    {
    g_db->close(0);
    delete g_db;
    g_db = NULL;
    }
    if(g_env)
    {
    g_env->close(0);
    delete g_env;
    g_env = NULL;
    }
    }
    catch(DbException &e)
    {
    cout<<""<<e.what()<set_error_stream(&std::cerr);
    g_env->set_cachesize(0,10*1024*1024,1);
    g_env->open(strEnvHome.c_str(),nEnvFlags,0);

    g_db=new Db(g_env,0);
    g_db->set_error_stream(&std::cerr);

    g_db->open(NULL,strDbFileName.c_str(),NULL,DB_BTREE,DB_CREATE,0);

    }
    catch(DbException &e)
    {
    cout<<"打开数据库出错:"<<e.what()<<endl;
    closeEnv();
    return -1;
    }
    Dbt key,data;
    char sKey[1024],sData[1024];

    try
    {
    for(int i=0;iput(NULL,&key,&data,0)!=0)
    {
    cout<<"插入第"<<i<<"个数据时出错"<<endl;
    }

    }
    }
    catch(DbException &e)
    {
    cout<<"写入数据库出错:"<<e.what()<sync(0);
    try
    {
    snprintf(sKey,sizeof(sKey),”key%d”,7);
    key.set_data(sKey);
    key.set_size(strlen(sKey));
    if(g_db->get(NULL,&key,&data,0)!=0)
    {
    cout<<"未查找到,key:"<<sKey<<endl;
    }
    else
    {
    memcpy(sData,data.get_data(),data.get_size());
    sData[data.get_size()]='';
    cout<<"查找到:"<<endl<<"key:"<<sKey<<";\tdata:"<<sData<<endl<<endl;
    }
    }
    catch(DbException &e)
    {
    cout<<"查找数据库出错:"<<e.what()<cursor(NULL,&cursorp,0)!=0)
    {
    cout<<"[get cursor error."<get(&key,&data,DB_NEXT)==0)
    {
    memcpy(sKey,key.get_data(),key.get_size());
    sKey[key.get_size()]=”;
    memcpy(sData,data.get_data(),data.get_size());
    sData[data.get_size()]=”;
    cout<<"key:"<<sKey<<";\tdata:"<<sData<<endl<<endl;
    }
    }
    }
    catch(DbException &e)
    {
    cout<<"用游标遍历出错:"<<e.what()<<endl;
    closeEnv();
    return -1;
    }
    closeEnv();

    return 0;
    }

    下面是我的makefile文件。

    BDB_test:BDB_test.o
    g++ BDB_test.o -I/usr/local/BerkeleyDB.5.0/include -o BDB_test
    BDB_test.o:BDB_test.cpp
    g++ -c BDB_test.cpp
    clean:
    rm *.o BDB_test

    因为我在自己的机器上可以成功运行,所以估计问题出现在别的地方,不是我安装的问题,链接库也没有问题,那请问,最有可能是哪里的问题呢?
    因为您的经验比较丰富,麻烦指点一下吧。。我也再想想其他方法。。。
    期待您的回复!!

  41. Emily Fu
    2010年6月24日17:27 | #41

    你好,请问你服务器上是否存在其他版本的BDB库,你include的头文件跟你的dll是否一致?

  42. polarbear
    2010年6月25日19:25 | #42

    @winterzhang
    您好:
    老师。
    我用下面的命令可以编译通过
    g++ BDB_test.cpp -I/usr/local/BerkeleyDB.5.0/include -L/usr/local/BerkeleyDB.5.0/lib -ldb_cxx
    但是为什么运行的时候提示:
    “打开数据库出错:DbEnv::set_lk_priority: Invalid argument
    段错误”
    呢?
    我之前在自己机器上编译运行都没有问题,但是我到服务器上按照和之前完全相同的办法安装,而且运行完全相同的测试程序,为什么就会出现这个问题呢?
    我在网上查了很多资料,但是都没能解决,希望老师可以尽快解答一下,非常感谢!!

  43. polarbear
    2010年6月25日19:26 | #43

    @windsay
    您好:
    老师。
    我用下面的命令可以编译通过
    g++ BDB_test.cpp -I/usr/local/BerkeleyDB.5.0/include -L/usr/local/BerkeleyDB.5.0/lib -ldb_cxx
    但是为什么运行的时候提示:
    “打开数据库出错:DbEnv::set_lk_priority: Invalid argument
    段错误”
    呢?
    我之前在自己机器上编译运行都没有问题,但是我到服务器上按照和之前完全相同的办法安装,而且运行完全相同的测试程序,为什么就会出现这个问题呢?
    我在网上查了很多资料,但是都没能解决,希望老师可以尽快解答一下,非常感谢!!

  44. polarbear
    2010年6月25日19:30 | #44

    @Emily Fu
    您好:
    老师。
    请问如何检测服务器上是否存在其他版本的BDB库?(我没有安装过,但是我想知道怎么判断)
    怎么判断我include的头文件跟我的dll是否一致啊?
    另外,如果不是你上面的原因,还有可能是什么原因呢?
    麻烦老师点播一下。。

  45. polarbear
    2010年6月28日21:50 | #45

    @polarbear
    您好:
    老师,我的问题被忽略了吗,麻烦老师抽时间解答下吧。。
    谢谢老师了。。

  46. Emily Fu
    2010年6月29日14:26 | #46

    你可以到google上搜索跟你服务器平台相关的库链接函数,例如在linux平台,查看当前应用程序链接的库名和地址是ldd。

    根据你的错误信息,可能的问题有:
    1. 错误编译BDB库
    2. 错误链接库
    3. 错误链接头文件

    如果你依然没有找到问题,建议调试一下,打印你的运行栈,看看链接的库是什么,另外进入set_lk_priority时,查看传入了什么参数。具体方法,请根据你所在的平台在google找到相应的方法。

  1. 本文目前尚无任何 trackbacks 和 pingbacks.
注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。
Դ