{"id":137,"date":"2010-03-06T16:35:45","date_gmt":"2010-03-06T07:35:45","guid":{"rendered":"http:\/\/blog.isnext.net\/issy\/?p=137"},"modified":"2010-03-06T16:36:03","modified_gmt":"2010-03-06T07:36:03","slug":"mynets%e3%81%ae%e6%97%a5%e8%a8%98%e6%a4%9c%e7%b4%a2%e9%ab%98%e9%80%9f%e5%8c%96%ef%bc%88tritonn%e5%b0%8e%e5%85%a5%ef%bc%89","status":"publish","type":"post","link":"https:\/\/blog.isnext.net\/issy\/archives\/137","title":{"rendered":"MyNETS\u306e\u65e5\u8a18\u691c\u7d22\u9ad8\u901f\u5316\uff08Tritonn\u5c0e\u5165\uff09"},"content":{"rendered":"<p>2009\u5e746\u6708\u306bUsagi-Project\u306b\u5bc4\u7a3f\u3057\u305f\u3082\u306e\u3002<\/p>\n<p>\u65e5\u8a18\u30c7\u30fc\u30bf\u304c\u81a8\u5927\u306b\u306a\u3063\u3066\u304d\u3066\u65e5\u8a18\u691c\u7d22\u306eI\/O\u304c\u30b5\u30fc\u30d0\u5168\u4f53\u306e\u8db3\u3092\u5f15\u3063\u5f35\u308b\u3088\u3046\u306b\u306a\u3063\u3066\u304d\u305f\u306e\u3067\u3001\u691c\u7d22\u306e\u9ad8\u901f\u5316\u3092\u3057\u3066\u307f\u307e\u3057\u305f\u3002<br \/>\n\u65b9\u6cd5\u306fmysql\u3092\u65e5\u672c\u8a9e\u5168\u6587\u691c\u7d22\u5bfe\u5fdc\u306eTritonn\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u7248\u306b\u5909\u66f4\u3057\u3001\u305d\u308c\u306b\u5408\u308f\u305b\u3066\u691c\u7d22\u90e8\u5206\u3092\u4fee\u6b63\u3057\u307e\u3059\u3002<\/p>\n<p>\u624b\u5143\u306e\u65e5\u8a18\u30c7\u30fc\u30bf37\u4e07\u4ef6400M\u304f\u3089\u3044\u306ec_diary\u30c6\u30fc\u30d6\u30eb\u3092PentiumM1.6GHz\u306e\u30de\u30b7\u30f3\u3067\u691c\u7d22\u3057\u305f\u3068\u3053\u308d\uff08\u691c\u7d22\u30af\u30a8\u30ea\u306f\u5f8c\u8ff0\uff09\u691c\u7d22\u901f\u5ea6\u304c15\u500d\u4ee5\u4e0a\u306b\u306a\u308a\u307e\u3057\u305f\u3002<\/p>\n<p>\u3000LIKE\u691c\u7d22\u3000\u5e73\u57475.3\u79d2<br \/>\n\u3000Tritonn\u691c\u7d22\u3000\u5e73\u57470.3\u79d2<\/p>\n<p>\u4ee5\u4e0b\u624b\u9806\u3002<\/p>\n<p><strong>\uff11\uff09Tritonn\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\uff08CentOS5\u30b5\u30fc\u30d0\u306e\u5834\u5408<\/strong>\uff09<\/p>\n<p>\u307e\u305a\u306f\u65e2\u5b58\u306eDB\u3092\u5ff5\u306e\u305f\u3081\u30d0\u30c3\u30af\u30a2\u30c3\u30d7<br \/>\n[code]# mysqldump -u root -p mynets_db > dump.sql[\/code]<\/p>\n<p>mysql\u3092\u7f6e\u304d\u63db\u3048\u308b\u305f\u3081mysql\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3092\u78ba\u8a8d<br \/>\n[code]# rpm -qa | grep -i mysql<br \/>\nmysql-5.0.45-7.el5[\/code]<\/p>\n<p>mysql\u3092remove<br \/>\n\u901a\u5e38dovecot\u3067\u5229\u7528\u3055\u308c\u3066\u3044\u308b\u306e\u3067\u3001dovecot\u3092\u505c\u6b62\u3057\u3066\u304b\u3089\u4f5c\u696d<br \/>\n[code]# service dovecot stop<br \/>\n# yum remove mysql[\/code]<\/p>\n<p>perl-DBI\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3092\u78ba\u8a8d<br \/>\n[code]# rpm -qa | grep -i perl-DBI<br \/>\nperl-DBI-1.52-1.fc6[\/code]<\/p>\n<p>\u6700\u65b0\u306etritonn-1.0.12-mysql-5.0.67\u30d1\u30c3\u30b1\u30fc\u30b8\u7fa4\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9<br \/>\n[code]# mkdir download<br \/>\n# cd download\/<br \/>\n# wget http:\/\/iij.dl.sourceforge.jp\/tritonn\/36448\/MySQL-client-5.0.67-tritonn.1.0.12.i386.rpm<br \/>\n# wget http:\/\/iij.dl.sourceforge.jp\/tritonn\/36448\/MySQL-devel-5.0.67-tritonn.1.0.12.i386.rpm<br \/>\n# wget http:\/\/iij.dl.sourceforge.jp\/tritonn\/36448\/MySQL-server-5.0.67-tritonn.1.0.12.i386.rpm<br \/>\n# wget http:\/\/iij.dl.sourceforge.jp\/tritonn\/36448\/MySQL-shared-5.0.67-tritonn.1.0.12.i386.rpm<br \/>\n# wget http:\/\/iij.dl.sourceforge.jp\/tritonn\/36448\/mecab-0.97-tritonn.1.0.12.i386.rpm<br \/>\n# wget http:\/\/iij.dl.sourceforge.jp\/tritonn\/36448\/mecab-ipadic-2.7.0.20070801-tritonn.1.0.12.i386.rpm<br \/>\n# wget http:\/\/iij.dl.sourceforge.jp\/tritonn\/36448\/senna-1.1.4-tritonn.1.0.12.i386.rpm[\/code]<\/p>\n<p>\u4ee5\u4e0b\u306e\u9806\u756a\u3067\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<br \/>\n[code]# rpm -ivh mecab-0.97-tritonn.1.0.12.i386.rpm<br \/>\n# rpm -ivh mecab-ipadic-2.7.0.20070801-tritonn.1.0.12.i386.rpm<br \/>\n# rpm -ivh senna-1.1.4-tritonn.1.0.12.i386.rpm<br \/>\n# rpm -ivh MySQL-shared-5.0.67-tritonn.1.0.12.i386.rpm<br \/>\n# rpm -ivh MySQL-client-5.0.67-tritonn.1.0.12.i386.rpm<br \/>\n# rpm -ivh MySQL-server-5.0.67-tritonn.1.0.12.i386.rpm<br \/>\n# rpm -ivh MySQL-devel-5.0.67-tritonn.1.0.12.i386.rpm[\/code]<\/p>\n<p>MySQL\u306f\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u5f8c\u3059\u3050\u306b\u8d77\u52d5\u3059\u308b\u306e\u3067root\u306e\u30d1\u30b9\u3092\u8a2d\u5b9a<br \/>\n[code]# \/usr\/bin\/mysqladmin -u root password &#8216;rootpassword'[\/code]<\/p>\n<p>MySQL\u3078\u306e\u30ed\u30b0\u30a4\u30f3\u78ba\u8a8d<br \/>\n[code]# mysql -u root -p<br \/>\nEnter password: <\/p>\n<p>Welcome to the MySQL monitor.  Commands end with ; or \\g.<br \/>\nYour MySQL connection id is 7<br \/>\nServer version: 5.0.67-modified MySQL Community Server (GPL) (portions (c) Tritonn Project)<\/p>\n<p>Type &#8216;help;&#8217; or &#8216;\\h&#8217; for help. Type &#8216;\\c&#8217; to clear the buffer.<\/p>\n<p>mysql>[\/code]<\/p>\n<p>\u3053\u308c\u3067Tritonn\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u5b8c\u4e86<\/p>\n<p>\u5165\u308c\u66ff\u3048\u524d\u306eDB\u3082\u305f\u3076\u3093\u5927\u4e08\u592b\u306a\u306f\u305a\u3060\u304c\u3001\u3082\u3057\u4f7f\u3048\u306a\u3044\u6642\u306b\u306f\u65b0\u898f\u306bDB\u4f5c\u6210\u3057\u3066\u3001\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u30c7\u30fc\u30bf\u3092\u30ea\u30b9\u30c8\u30a2\u3059\u308b<br \/>\n[code]# mysql -u root -p<br \/>\nmysql> CREATE DATABASE mynets_db DEFAULT CHARACTER SET utf8;<br \/>\nmysql> quit<br \/>\n# mysql -u root -p mynets_db < dump.sql[\/code]\n\n<strong>\uff12\uff09Tritonn\u7528\u306eindex\u4f5c\u6210<\/strong><br \/>\n[code]# mysql -u root -p<br \/>\nmysql> use mynets_db;<br \/>\nmysql> ALTER TABLE c_diary ADD FULLTEXT fullindex USING NGRAM,SECTIONALIZE (subject, body);[\/code]<\/p>\n<p>\u4ef6\u6570\u304c\u591a\u3044\u3068\u76f8\u5f53\u6642\u9593\u304c\u304b\u304b\u308b\u306e\u3067\u3058\u3063\u3068\u5f85\u3064<br \/>\n\u5b8c\u4e86\u3057\u305f\u3089\u30c6\u30b9\u30c8\u691c\u7d22\u3057\u3066\u307f\u308b\uff08test\u3067\u691c\u7d22\uff09<br \/>\n[code]mysql> SELECT * FROM c_diary WHERE (public_flag = &#8216;public&#8217; or public_flag = &#8216;open&#8217;) AND MATCH (subject, body) AGAINST (&#8220;test&#8221;) ORDER BY r_datetime DESC;[\/code]<\/p>\n<p>LIKE\u691c\u7d22\u3068\u6642\u9593\u3092\u6bd4\u8f03\u3057\u3066\u307f\u308b<br \/>\n[code]mysql> SELECT * FROM c_diary WHERE (public_flag = &#8216;public&#8217; or public_flag = &#8216;open&#8217;) AND (subject LIKE &#8216;%test%&#8217; or body LIKE &#8216;%test%&#8217;) ORDER BY r_datetime DESC;[\/code]<\/p>\n<p>\uff13\uff09MyNETS\u306e\u691c\u7d22\u90e8\u5206\u306e\u4fee\u6b63<\/p>\n<p>webapp\/lib\/db\/read\/diary.php\u306e\u65b0\u898f\u65e5\u8a18\u691c\u7d22\u306e\u9805\u76ee\u3092\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u4fee\u6b63<\/p>\n<p>$s[code]elect = &#8216;SELECT *&#8217;;<br \/>\n$from = &#8216; FROM &#8216; . MYNETS_PREFIX_NAME . &#8216;c_diary&#8217;;<br \/>\n$where = &#8221; WHERE (public_flag = &#8216;public&#8217; or public_flag = &#8216;open&#8217;)&#8221;;<\/p>\n<p>if ($keyword) {<br \/>\n\/\/\u5168\u89d2\u7a7a\u767d\u3092\u534a\u89d2\u306b\u7d71\u4e00<br \/>\n$keyword = str_replace(&#8216;\u3000&#8217;, &#8216; &#8216;, $keyword);<br \/>\n\/\/SQL Injection\u5bfe\u7b56<br \/>\n$keyword = str_replace(&#8216;\\\\&#8217;, &#8221;, $keyword);<br \/>\n$keyword = str_replace(&#8216;&#8221;&#8216;, &#8221;, $keyword);<br \/>\n$keyword = str_replace(&#8216;;&#8217;, &#8221;, $keyword);<br \/>\n$keyword = str_replace(&#8216;)&#8217;, &#8221;, $keyword);<br \/>\n$keyword = check_search_word($keyword);<\/p>\n<p>$where .= &#8216; AND MATCH (subject, body) AGAINST (&#8220;&#8216; .$keyword. &#8216;&#8221; IN BOOLEAN MODE)&#8217;;<\/p>\n<p>}<br \/>\n$order = &#8221; ORDER BY r_datetime DESC&#8221;;[\/code]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>2009\u5e746\u6708\u306bUsagi-Project\u306b\u5bc4\u7a3f\u3057\u305f\u3082\u306e\u3002 \u65e5\u8a18\u30c7\u30fc\u30bf\u304c\u81a8\u5927\u306b\u306a\u3063\u3066\u304d\u3066\u65e5\u8a18\u691c\u7d22\u306eI\/O\u304c\u30b5\u30fc\u30d0\u5168\u4f53\u306e\u8db3\u3092\u5f15\u3063\u5f35\u308b\u3088\u3046\u306b\u306a\u3063\u3066\u304d\u305f\u306e\u3067\u3001\u691c\u7d22\u306e\u9ad8\u901f\u5316\u3092\u3057\u3066\u307f\u307e\u3057\u305f\u3002 \u65b9\u6cd5\u306fmysql\u3092\u65e5\u672c\u8a9e\u5168\u6587\u691c\u7d22\u5bfe\u5fdc\u306e &hellip; <a href=\"https:\/\/blog.isnext.net\/issy\/archives\/137\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;MyNETS\u306e\u65e5\u8a18\u691c\u7d22\u9ad8\u901f\u5316\uff08Tritonn\u5c0e\u5165\uff09&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[20,16,22,24,23],"class_list":["post-137","post","type-post","status-publish","format-standard","hentry","category-linux","tag-centos","tag-db","tag-mynets","tag-mysql","tag-tritonn"],"_links":{"self":[{"href":"https:\/\/blog.isnext.net\/issy\/wp-json\/wp\/v2\/posts\/137","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.isnext.net\/issy\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.isnext.net\/issy\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.isnext.net\/issy\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.isnext.net\/issy\/wp-json\/wp\/v2\/comments?post=137"}],"version-history":[{"count":2,"href":"https:\/\/blog.isnext.net\/issy\/wp-json\/wp\/v2\/posts\/137\/revisions"}],"predecessor-version":[{"id":139,"href":"https:\/\/blog.isnext.net\/issy\/wp-json\/wp\/v2\/posts\/137\/revisions\/139"}],"wp:attachment":[{"href":"https:\/\/blog.isnext.net\/issy\/wp-json\/wp\/v2\/media?parent=137"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.isnext.net\/issy\/wp-json\/wp\/v2\/categories?post=137"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.isnext.net\/issy\/wp-json\/wp\/v2\/tags?post=137"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}