Community journal

The latest from the MySQL community

Ideas, releases, practical guides, and perspectives from the people building with MySQL.

Follow the feed
Showing entries 1281 to 1290 of 3187 « Previous | Next »
MySQLマニュアルの「チュートリアル」

この記事は、2015年「MySQLマニュアルを読む」アドベントカレンダーの3日目です.


 MySQLマニュアルには「チュートリアル」の章があります。
ざっと見たところ、バージョン 5.7 と 5.6 とで構成に大きな変更はなさそうなので、英語に不慣れな人は、最初に日本語版を読むと良いでしょう。


ver.5.6日本語 http://dev.mysql.com/doc/refman/5.6/ja/tutorial.html
ver.5.7英語  …

[さらに読む]
MySQL Routerつらくない(自前ビルド時のcmakeエラー編)

この記事は MySQL Fabric&Routerつらくない Advent Calendar 2015 の2日目です。

昨日 はしゃらっと流したcmakeした時のエラーについていくつか。


Could not find MySQL librariesと言われるけど、mysql-community-libsだけじゃなくてmysql-community-develも要求してくる

$ rpm -q mysql-community-libs
mysql-community-libs-5.7.9-1.el6.x86_64

$ cmake .
..
CMake Error at cmake/FindMySQL.cmake:105 (message):
Could not find MySQL libraries; used
/root/mysql-router-2.0.2/../mysql-server/lib;/usr/local/mysql/lib;/usr/local/mysql/lib;/usr/local/lib;/usr/lib/x86_64-linux-gnu;/usr/lib/i386-linux-gnu;/usr/lib64;/usr/lib
..

$ sudo yum install -y …
[さらに読む]
オープンソースRDBMSにUPSERT(MERGE)が揃いました。

本エントリはFirebird Advent Calendar 2015の二日目です。

オープンソースRDBMS御三家(Firebird, MySQL, PostgreSQL)の中では、唯一FirebirdがSQL標準のMERGE文に対応していました。

MySQLではINSERT IGNOREにて、マッチしたときに、なにもしない(IGNORE = DO NOTHING)、
INSERT … ON DUPLICATE KEY UPDATEにて、マッチしたときに、更新(DO UPDATE)することにより、
MERGE文相当の処理ができていました。

PostgreSQLでは手軽に行えるUPSERTの機能はなかったのですが、今回MySQLのINSERT … ON DUPLICATE KEY UPDATEに
似た独自構文にて、9.5で対応することになりました。マッチしたときに差分表(m_shain)で更新するには、次のような例になります。

INSERT INTO shain(id, name) select id, name FROM m_shain ON CONFLICT ON CONSTRAINT 制約名 DO UPDATE …

[さらに読む]
MySQLリファレンスマニュアルのURL

この記事は、2015年「MySQLマニュアルを読む」アドベントカレンダーの2日目です.


 MySQLリファレンスマニュアルのURLの形式について紹介します。
昨日の日記で紹介した ドキュメントホームから、MySQL 5.7 Reference Manual(GA) というリンクを選ぶと、MySQL 5.7 のリファレンスマニュアルのトップページへと遷移します。以下のURLとなります。

…

[さらに読む]
MySQL Routerはつらくない。何故ならまだ触っていないからだ。

この記事は MySQL Casual Advent Calendar 2015 の1日目です。
MySQL Fabric&Routerつらくない Advent Calendar 2015 の1日目でもあります。

さて…昨年あんなにも MySQL Fabric関連のブログ を書いたのに、少なくとも2015/12/1現在、MySQL Fabricがちっとも流行ってないのは何故だろうとか考えてみました。

  1. Fabric対応コネクターが必要
  2. MySQL 5.6以上かつGTIDが必要
  3. バッキングストア(mysqlfabricデーモンが情報をストアするためのmysqld)を自前で冗長化しないといけない
  4. ググったら 「MySQL …
[さらに読む]
MySQLのリファレンスマニュアルを読もう

この記事は、2015年「MySQLマニュアルを読む」アドベントカレンダーの1日目です.


 MySQLに関しては、膨大な量のドキュメントが公開されています。
一度読み通したいなと思いつつ、最初の方は面白くなかったり(笑)、章立てで見える以上に各章に深さがあって、読んでも読んでもいつ終わるかわからなくてイヤになったりなどして、いつもすぐに読むのをやめてしまいます。


 12月になると、連載っぽく書く行事があるようなので、それに乗っかる形で、ドキュメントをつまみ食いしながら1日1ネタを書いて行けたら良いかなと思い、書き始めてみることにしました。
…

[さらに読む]
sha256_pluginでMySQLのパスワードを保護する(MySQL Server Blogより)

免責事項

この記事はTodd Farmer氏によるMySQL Server Blogの記事「Protecting MySQL Passwords With the sha256_password Plugin」(2015/9/16)をユーザが翻訳したものであり、Oracle公式の文書ではありません。

長年にわたって、MySQLはパスワードの保存およびネットワーク通信の両者をセキュアにするのに3種類の方法を使ってきました。このブログ投稿では様々な方法の簡単な歴史をご紹介し、MySQLサーバー5.6で導入されたsha256_passwordを使うように移行すべき理由について焦点をあてます。

初期のパスワード(old password)

現在では …

[さらに読む]
MySQL 5.7 : レプリケーションフィルターをオンラインで変更する

MySQL 5.7にはたくさんの機能拡張や新機能があります。これについては、別の記事(原文)で以前サマリーを書きました。レプリケーションフィルターをオンラインで追加できるのは、マニュアルにも書かれているようにMySQL 5.7の機能の一つです。この記事では、いくつかの例とともにこの機能を説明し、まとめてみます。

…

[さらに読む]
MySQL 5.0から5.7へ直接'インプレース'アップグレードする

免責事項

  • この翻訳は MySQL Server Blogの記事をユーザーが翻訳したものであり、Oracle公式の翻訳ではありません。

本文

  • この記事はMySQLのアップグレードに関する2部作の2番目である。1つ目の記事は mysqldumpを使って5.0から5.7に直接アップグレードする で、mysqldumpを利用したアップグレードの挙動について言及している。我々はこれを'ダンプ'アップグレードと呼んでいる。この記事では我々が`インプレース'アップグレードと呼んでいる、バイナリーアップグレードやライブアップグレードとしても知られているやり方について言及する。

  • …

[さらに読む]
LIKE句のSQLインジェクション

先日、例外情報のトラッカーを見回していたら、目を引くスロークエリーログを発見しました。SELECT ... WHERE ... LIKEといったクエリーのLIKE句にたくさんのパーセントが付いているのです。この部分はユーザが入力した部分なのは明らかで、最初私はSQLインジェクションを疑いました。

[3.92 sec] SELECT ... WHERE (profiles.email LIKE '%64%68%6f%6d%65%73@%67%6d%61%69%6c.%63%6f%6d%') LIMIT 10

コードを見てみると、ここで解釈されるメタ文字(%や_や\)のチェックをまったくせずにユーザが指定した文字列をLIKE句に直接使っていることがわかりました。

def self.search(term, options = {})
  limit = (options[:limit] || 30).to_i
  friends = options[:friends] || []
  with_orgs = options[:with_orgs].nil? ? false : options[:with_orgs]

  if …
[さらに読む]