mysql

MySQLのmatch againstのFULLTEXT検索はORで検索ができない?

MySQLのmatch againstのFULLTEXT検索はORで検索ができないのでしょうか。 OR検索をすると、後ろの検索クエリーのみがヒットするようです。 MySQl5.1でgroonga1.0.6につなげているのですが、うまく検索できないようです。 また検索に少し時間がかかるようです…

groonga storage engineでマルチカラムインデックスをつくってみたいけど迷走中

groonga storage engineでマルチカラム(複合)インデックスをつくろうとしたら、なかなかうまくいきません。 カラム名制約 第一に、カラム名の制約があり、接頭語に_(アンダーバー)を入れるなというエラー。 #1005 - name can't start with '_' and 0-9, …

MySQL5.5上でバックアップファイルをインポートする場合にErrcode:2が出た場合の回避方法

LOAD DATAでリストアをMySQL5.5で行う場合の設定方法について記載します。 エラー検証 LOAD DATA INFILE '/path/hoge/table_backup' INTO TABLE torihiki_torihikidataとすると ERROR1105(HY005):File '/path/hoge/table_backup' not Found(Errcode: 2)とエ…

MySQLでの「SELECT INTO TABLE」がサポートされていないので、がんばって解決する方法

MySQLでの「SELECT INTO TABLE」はサポートされていません。公式によると以下のようになっています。 MySQL サーバでは、Sybase SQL 拡張機能 SELECT ... INTO TABLE ... はまだサポートされていません。代わりに、SQL-99 構文 INSERT INTO ... SELECT ... …

Djangoのsyncdbでgroongaテーブルを作成するSQLを流しこむとエラーが出る件

次の条件のときにDjangoでエラーがおきます。 Djangoのデータベース作成コマンド「syncdb」を行うとき であって 外部SQLとしてgroongaテーブルを作成するとき 次のような流れです。 # python ./manage.py syncdb Failed to install index for hoge.Huga mode…

groongaの全文検索とMySQLのLike検索の速度比較

MySQL5.1でLIKE検索を使う場合と、groonga storage engine(以下、groonga)で全文検索するときの時間について計測しました。 LIKE検索はインデックスされていないカラムを一つづつ確かめる方法です。 groongaの場合は、あらかじめインデックスされたカラム…

O/Rマッパーは不要なのでしょうか?::SQLインジェクション対策「入力は汚染されている前提で設計せよ」

オブジェクト関係マッピング(O/Rマッパー)の不要という議論はたびたびありますが、 セキュリティ面と複雑性について思ったことを書いてみます。 自分はセキュリティ上の配慮から、ORMは総論としてあったほうがいいと思う派です。 O/Rマッピングとは 物事を…

MySQLでバイナリログの最大上限の容量(max_binlog_size)を変更する設定

MySQLのバイナリログのローテーションの最大値は、初期値は1GBです。16.1.2.4. Binary Log Options and Variables Default 1073741824 最小は4096bytes、最大は1GB(初期値)とのことです。 変更したい場合、my.cnfのmax_binlog_sizeで変更します。 バイト…

MySQLでバイナリログを定期的に削除するmy.cnfの設定(expire_logs_days)

Djangoを使っていて、たまにsyncdb(モデルをデータベースに更新させる作業)をすると、応答がなくなる時があります。 MySQLは更新等のバイナリログを残していて、リストア(復旧)しやすいように設計されています。バックアップ(スナップショット)をどこ…

Pythonの便利ライブラリLazyboyを入れてCassandraを使う方法

単一障害点がないと言われるCassandraデータベースをPythonから使う場合、 いくつか選択肢があります。Lasyboyは慣れるまで癖がありますが、使いこんでみると結構素直です。ダウンロードはここから出来ます。 digg / lazyboy CassandraをPythonから利用でき…

MySQLのバイナリログの保存場所を自分で設定する場合

MySQLのバイナリログは5.0以前と5.1以降で保存場所が異なります。 5.0以下ならdatadirで指定したディレクトリと同じです。 5.1以上ならPIDファイルと同じディレクトリになります。 今回は自分で設定したい場合の記述方法です。 vi /etc/my.cnf log-bin = /va…

Django1.2でINNODBを使いたい場合のsettings.pyの設定方法

Djangoは1.2から複数のデータベースに接続することが可能になりました。データベースをMySQLのInnodbに指定して、構築してみます。まだあまり設定方法が出ていないようなので、今回確認できている例を載せておきます。 初期のsetting.py mysqlの設定をくわえ…

Djangoのsyncdbで_mysql_exceptions.OperationalError: (1049, "Unknown database 'hoge'")のエラーがでた場合の対処方法

Django1.2.4でプロジェクトを新たに作成して、MySQLを指定して、 初めてsyncdbするとき、次のようなエラーが出る場合があります。 _mysql_exceptions.OperationalError: (1049, "Unknown database 'hoge'") "Unknown database 'hoge' これはMySQLにhogeとい…

CentOS5.5にMySQL5.1をyumでインストールする方法

# yum --enablerepo=remi,epel update mysql* Loaded plugins: downloadonly Setting up Update Process Resolving Dependencies --> Running transaction check ---> Package mysql.x86_64 0:5.1.54-1.el5.remi set to be updated --> Processing Dependenc…

phpMyAdmin3.3をCentOS5.5にインストールする方法

事前準備として以下のインストールが必須です。 事前にインストールしておくもの mysql(mysql-libs)5.0以上 php5.3以上 php-mysql5.3(phpと同じバージョン) phpMyAdmin2でよければ、phpのバージョンは5.3未満でも構いません。 yumでphp-mysqlをインストール…

CentOS5.5にPHP5.3.4とphpMyAdmin3.3.9をインストールして、Nginxで動作させる方法

データベースを視覚的に把握できるphpMyAdminはとても便利です。 この最新版であるphpMyAdminの3.3.9系統をさくらのVPSにいれてみました。 インストールの条件は次のとおりです。 OS:CentOS5.5 MySQL:5.1(ソースからインストール済) PHP5.3.4(remiパッ…

MySQLdbが使えない場合の設定方法

Djangoなどを使っていると、MySQLdbが使えない場合があります。例えば以下のようなエラーです。 raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e) django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No modu…

MySQLのインストールエラー:configure: error: No curses/termcap library found

MySQL5.1.54をさくらのVPS(CentOS5.5の初期設定)にインストールしようとしたら、 以下のエラーが出ます。 # ./configure --'as you like' checking for termcap functions library... configure: error: No curses/termcap library foundWikipediaによると…

groongaをCentOS5.5のMySQL5.5にインストールする

rpmレポジトリを更新します。 # rpm -ivh http://packages.groonga.org/centos/groonga-repository-1.0.0-0.noarch.rpm # yum update追加されたものを見てみましょう。 # yum list | grep MySQL MySQL-client.x86_64 5.5.8-1.rhel5 groonga MySQL-client-com…

使用中のMySQLのバージョンを知りたい場合のコマンド

MySQLはバージョンごとに機能が異なる。 開発時に現在使っているMySQLのバージョンを知っておきたいときがある。 その場合、コマンドラインから知る方法と、MySQLダイアログから確認する方法がある。 1.コマンドラインからバージョンを確認する方法 MySQL…

CentOS5.5上にMySQLとgroongaをインストールする方法

CentOS5.5上にgroongaをyumで公式の通りインストールしようとするとエラーがでます。解決のために、いくつか調整したので、経緯を載せておきます。今回は次の3つを試しました。 MySQL5.1.53のインストール groonga-1.0.5-1のインストール mysql-groonga-0.4…

DjangoからMySQLサーバを使ったり、INNODB形式を指定する設定

Djangoは様々なデータベースを指定して使うことができる。MySQLを使う場合の設定について備忘録。 1.MySQL用モジュール(mysql-python)をインストールする。 # yum -y install mysql-devel # easy_install mysql-python 2.MySQL用のDBを作成しておく # …

SQLAlchemyを使ってMySQLにデータを更新する場合の日本語の文字化けを修正する方法

Twitterのステータス情報などをpythonのurllib2やらで取得し、MySQLに登録するときに起きる日本語の文字化けを修正するテクニック。 SQLAlchemyを使った場合、MySQLにデータを挿入またはデータを更新する場合に、日本語が文字化けするときがある。その場合に…