Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

このエントリは MySQL Casual Advent Calendar 2011 - MySQL Casual の10日目の記事です。 こんばんは。tagomorisです。さとしです。タゴモリスの s はさとしの s です(実話)。Twitterで #さとし というハッシュタグが流れるたび、ひそかにびくっとしてます。 RubyからMySQLに繋ぐときにどうするの、ととりあえず gem search -r mysql とかやると思います。そして大量にあれこれ出てきてどうすればいいんだ! という気分になると思います。そういう気分になったことがあるので、現状を簡単にまとめてみました。 ruby-mysql 昔からの定番ですね。作者は id:tmtms のとみたまさひろさん。rubygemsとか使われる前から Ruby/MySQL というライブラリ名で知られていました。Googleで検索するとト
MySQLのデータが文字化けします。通常は、my.confを修正して解決します。 PHPでMySQLから取り出したデータが文字化けする時の解決方法 - このブログは証明できない。 ところが、共用サーバーの場合、my.confを触れません。そこで、SET NAMESを使います。PHPだと、こんなカンジ。 mysql_query('SET NAMES utf8'); ところが、ところが、SET NAMESは使ってはいけないらしいです。SQLインジェクションの脆弱性があるのだとか。 no title その対応策です。PHPだと、こんなカンジ。 mysql_set_charset('utf8'); 注意: 文字セットを変更するにはこの方法を使うことを推奨します。 mysql_query() で SET NAMES .. を実行する方法はお勧めできません。 PHP: mysql_set_charse
Ruby mysql2でSQLインジェクション対策を行う方法について確認しました。 ※目次をクリックすると目次の下部にコンテンツが表示されます。 1.セミコロンで分割して複数のSQLを実行する攻撃 2.シングルクォートを挿入して不正に実行 下記コードを実行すると構文エラーになりました。 セミコロンで分割して複数のSQLを実行することは出来なくなっているようです。 (サンプルコード) results = client.query("SELECT id,name FROM win1 WHERE id= 12345; SELECT id,name FROM spl_table") results.each do |row| puts row end 1)問題のあるコード ○サンプルコード id = 12345 name = "' OR 'A' = 'A" results = client.que
MySQLの文字化けを直したい! 発端はSequelを使ってMySQLのデータを操作するRubyスクリプトを書いていたときでした。 UTF-8で保存したはずの文字列が、妙に文字化けしています。 mysqlコマンドでエンコーディングの確認をしてみると、 $ mysql -h host -u user -p database ...(略)... Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> \s -------------- mysql Ver 14.14 Distrib 5.1.30, for portbld-freebsd7.1 (i386) using 5.2 ...(略)... Server characterset: ujis Db characterset: utf8 Client char
MySQL で新たにテーブルを作ったり、プライマリキー、ユニーク制約、またはインデックスを作成する際、下記のようなエラーが発生することがあります。 ERROR 1170 (42000): BLOB/TEXT column 'text_field' used in key specification without a key length 結論として回避策から書くと、BLOB型またはTEXT型の場合は、インデックス作成時にキー長を明示してあげる必要があります。 create index new_index on table_name(text_field(100)); このエラーは、MySQL が BLOB型もしくはTEXT型 (これらに順ずる TINYTEXT型 や LONGTEXT型を含む)のような可変長カラムでは、その先頭から最大255文字分しかインデックスできないという制約から来て
Heroku の基本 Hello Heroku(Web アプリケーション) Hello clockwork on Heroku(定期実行アプリケーション) foreman について 複数のプロセスを管理する Ruby 上のツール/ライブラリ clockwork について cron の代替となる機能を単独で提供してくれる軽量のツール/ライブラリ Git について ローカル環境で試す 概要 ruby-mysql は、MySQL リレーショナルデータベースにアクセスするためのライブラリの一つです。 このページでは ruby-mysql を利用してデータベースにアクセスする方法について説明します。 MySQL にアクセスするためのライブラリは多数存在し、 その他にも汎用リレーショナルデータベースアクセス用ライブラリを使ったアクセスもできるため、それらを念頭に置く必要があります。 ruby-mysq
mysqlドライバのインストール $ gem install ruby-mysql 接続テスト require 'rubygems' require 'mysql' #db = Mysql.new("localhost", "username", "password","db") db = Mysql.connect("localhost", "username", "password","db") ⇒ エラーが出なければOK。 undefined method `connect' for Mysql:Class (NoMethodError) もしくは `initialize': wrong number of arguments (3 for 0) (ArgumentError) が出る場合 - 確認 1. Mysql.methods でメソッドを確認 ["private_class_
下記が Ruby から MySQL に接続する例です。ここではRuby/MySQLというライブラリを利用します。 ソースコード 下記のソースコードを参考にしてください。 # Ruby/MySQL を読み込みます。 require'mysql' # MySQL に接続します。 my = Mysql.new('hostname','username','password','dbname') # SQL クエリを実行します。 res = my.query('SELECT * from table_heteml') # 結果を表示します。 res.eachdo|row| puts row[0] end hostname
クライアントはサーバーに書き込むときにエラーを受け取りませんでしたが、問い合わせに対する完全な応答 (または何らかの応答) が得られませんでした。 デフォルトでは、何も発生しなかった場合、サーバーは 8 時間後に接続を閉じます。 この時間制限を変更するには、mysqld を起動するときに wait_timeout 変数を設定します。 セクション5.1.8「サーバーシステム変数」を参照してください。 スクリプトがある場合、クライアントが自動再接続を行うには、クエリーを再発行する必要があるだけです。 これは、クライアントの自動再接続を有効にしている (mysql コマンド行クライアントのデフォルト) ことが前提です。 「MySQL サーバーが存在しなくなりました」というエラーのほかの一般的な原因を次に示します。 ユーザー (またはデータベース管理者) が実行中のスレッドを KILL ステートメ
YAPC::Asiaのスライドで予告していた通り、実際に弊社のいくつかのサービスで使っている my.cnf を公開しました。 github: https://github.com/kazeburo/mysetup/tree/master/mysql 今回、公開した理由はMySQl Beginners Talksの発表の中でも触れている通りです。MySQLのソースコード中に含まれるサンプルのmy.cnfが最近のサーバハードウェアや運用に合わなくなって来ているという状況で、自分の設定にイマイチ自信が持てていない人は少なくないはず。そこで各社秘伝のタレ的な my.cnf をOpen & Shareすることで、モダンなmy.cnfを作り上げる事ができるんじゃないかという考えの下、今回 github にて公開しました。 ファイルは4つあり、それぞれ MySQL 4.0、5.1、5.5、そしてテスト中
クリアネオの特徴 無添加・無着色だから肌が弱い人でも安心 ワキガや嫌な臭いの原因となる菌を殺菌・消毒 お得な定期コースは、購入縛りなし!いつでも解約可能 体臭の悩みは老若男女問わず共通の悩みですが、他人には相談しにくいので1人で悩んでいる人が多いんです。 体臭って、自分でニオイが気になった時は、他の人はもっとクサイと思っています。 もしあなたが、自分でワキガかも…と思うのであれば、周りの人はあなたのニオイに気づいているかも… クリアネオは、そんなワキガ臭や足のニオイなど、イヤーな体臭全般を10秒でカットしてくれるんです。 クリアネオの効果や口コミを調査しましたので徹底解説します。 購入時に特典が付いてくるのでお得 公式サイトはコチラ ※特典は毎月変わるので公式サイトでご確認ください クリアネオはどんな人におすすめ? クリアネオの殺菌率は、なんと99.999%!体臭の悩みを解消してくれるクリ
ORDER BY句と聞くと、整然と並べられたデータを取得できるイメージばかりが先行してしまう。でも、「ソート」という考え方を応用すると、実はぐちゃぐちゃな順列で取得することも可能。 // postgresql の場合 SELECT * FROM table ORDER BY random(); // MySQL の場合 SELECT * FROM table ORDER BY rand() 乱数でソートできるというのが、イカス! でも、データをそんなブサイクに並べてどうするのか。たとえば、テーブルから任意のレコードを抽出したい場合に、この方法が使える。統計で無作為抽出するときなんかは、有用なんじゃないでしょうか。
最近MySQLの勉強をしていました。実践ハイパフォーマンスMySQLを読むべきという話を聞いていたのですが、かなり網羅的に書かれていて、今の知識ではどれが重要なのかわからない状態でした。そこで色々調べてみて、参考になる記事をいくつか見つけたので、少しまとめてみようと思います。 今回まとめた記事を読んで、大体以下のことが理解できました。 インデックスの使われ方とその構造(MyISAMとInnoDB) EXPLAINの詳しい使い方、見方 InnoDBの特性 ALTER TABLEの特性 レプリ遅延 まず最初に Webエンジニアのための データベース技術[実践]入門 (Software Design plus)posted with amazlet at 12.06.02松信 嘉範 技術評論社 売り上げランキング: 9767 Amazon.co.jp で詳細を見る 松信さんの書いた「Webエンジ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く