タグ

mysqlに関するstealthinuのブックマーク (139)

  • これが多分最後の「MySQL Fabricつらい」

    やあ (´・ω・`) ようこそ、MySQL Fabricのお墓へ。 このサキーラはサービスだから、まず飲んで落ち着いて欲しい。

    stealthinu
    stealthinu 2017/12/01
    うっわ。なんかすごい辛いエントリーを見た。えっとこれでMySQL「Casual」Advent Calendarなんだ… カジュアルじゃなかったらどんだけなんだ??
  • 本当はこわいMySQLプロトコル - tmtms のメモ

    11/28 に Haskell で MySQL の Xプロトコルを実装したという話が聴ける Club MySQL というイベントがあったので参加してきました。 clubmysql.connpass.com MySQLのプロトコルの話ということで、平日の夜とは言え東京で参加者9人(発表者含む)というマニアックな集まりでした。 自分も1年前に RubyMySQL Xプロトコルを実装していたのですが、このツイートを最後に中断していたのでした。 MySQL X Protocol で Collection の追加はできるようになったが、検索がめんどくさい。条件文字列のパースはクライアントで行う必要があるんだな。— とみたまさひろ💎🐬 (@tmtms) 2017年2月20日 今回話を聞いて、無理に謎条件式文字列をパースするんじゃなくて、処理系で書きやすいように書けばいいんだという方式に目から

    本当はこわいMySQLプロトコル - tmtms のメモ
    stealthinu
    stealthinu 2017/12/01
    信頼できないMySQLサーバ側からの応答では勝手に任意ファイルが取得されてしまう可能性があるわけか。
  • MySQLのSELECT結果をCSVファイルで出力する方法 |

    稿では MySQL で SELECT した結果を CSV ファイルとして出力する方法について解説します。 また、よく陥りがちなエラーの回避方法についても解説します。 構文 SELECT した結果を CSV ファイルとして出力するには、次のような SELECT 文を実行します。 SELECT column1, column2, column3 FROM table_name INTO OUTFILE '/tmp/data.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '"' LINES TERMINATED BY '\r\n'; CSVファイルの出力する際に決めるべきことに、区切り文字、囲い文字、エスケープ文字、改行コードがあります。 上の SQL では、それぞれを指定するようにしています。 CSVの区切り文字は FIEL

    MySQLのSELECT結果をCSVファイルで出力する方法 |
    stealthinu
    stealthinu 2017/11/27
    csv吐こうとしてsecurityではねられるの@@global.secure_file_privで吐いて良い場所が設定されてればそこには吐けるのね。
  • 第35回 OPTIMIZE TABLEでテーブルを最適化する | gihyo.jp

    MySQLを開発環境等で実行していると、容量が足りなくなってしまうことはありませんか? そんな時にDELETE文を実行して容量を空けようとしても、削除したはずのデータのディスク領域が何故か解放されなくて困ってしまうことがあるかと思います。 そこで今回はOPTIMEZE TABLE構文を使って、ディスク領域を最適化する方法を紹介したいと思います。 検証環境 今回は第23回 mysqlslapを使って負荷テストをしてみようで使用したCentOS7にSysBenchをインストールして実行しています。MySQLのバージョンは5.7.17を使用しています。 また、今回使用するデータは「第2回 MySQLにはじめてのデータを入れてみる」で紹介をしている郵便番号のテーブルを用いて紹介を行います。 削除した時のテーブルのサイズを確認する CentOSを使ってyumでMySQLをインストールした場合に、テー

    第35回 OPTIMIZE TABLEでテーブルを最適化する | gihyo.jp
    stealthinu
    stealthinu 2017/09/19
    mysqlでdeleteでデータを削除してもDBのファイルサイズは変わらない。optimize tableすると削除した分だけファイルサイズが小さくなる。ただバージョン依存で動きが違うっぽいことが書いてある。
  • mysqlの全てのデータベースを圧縮してダンプする|RDBMS|@OMAKASE

    mysqldumpコマンドを使い簡単に全データベースのバックアップを取得します。 バックアップしたファイル名には日付を追加しユニークな名前にするので毎日バックアップを残す事ができます。 まず最初にパスワード入力無しでmysqlコマンドを実行出来るように~/.my.cnfファイルを次の内容で作成します。 ~/.my.cnf [client] password="YOUR MYSQL PASSWD" mysqlにログインする際に使うパスワードが書かれてますので権限をユーザのみ0600などに設定して下さい。 $ chmod 0600 .my.cnf 当にパスワードなしでログインできるか確認します。mysqlと打つだけでmysql>にコンソール画面が変われば成功です。 dumpスクリプト スクリプト自体は短いです。dumpしたファイルを保存するディレクトリを作成してスクリプト中に設定して下さい。

    stealthinu
    stealthinu 2017/08/30
    mysqldumpでのlock tableで1142のエラーが出る場合「--skip-lock-tables」で回避出来る。というかlock tableしないで取っちゃうと。
  • 【MySQL】 Error 1449 The user specified as a definer (‘username’@’hostname’) does not exist at softelメモ

    MySQLError 1449 The user specified as a definer (‘username’@’hostname’) does not exist 問題 MySQLのエラーコード 1449 って何? Error 1449 The user specified as a definer ('username'@'hostname') does not exist よそからダンプを取ってきてリストアしただけの環境で、データをinsertしようとしたら発生しました。 トリガーが定義されているデータベースなんだけど何か問題がある? 答え トリガーやストアドプロシージャなどを含めてダンプを取得したとき、ダンプファイルに以下のようなSQLが含まれている。 /*!50017 DEFINER=`dbuser`@`192.0.2.%`*/ 例えば、TRIGGERの場合だと以下

    【MySQL】 Error 1449 The user specified as a definer (‘username’@’hostname’) does not exist at softelメモ
    stealthinu
    stealthinu 2017/07/30
    mysqldumpしたやつをrestoreしただけなのにそのテーブル触ろうとすると「Error 1449 The user specified as a definer」と言われるのはトリガーやストアドプロシジャがあるときDEFINERという設定があるため。
  • MySQL 8.0ではデフォルトで濁点半濁点を区別しなくなる - かみぽわーる

    4月にMySQL 8.0のUnicodeと日語対応についてManyi Luさんとディスカッションする会があって、かなりいろいろ話してとてもよい会だった。その後いろいろ考えて感じてる懸念を端的に書き記しておく。 デフォルトのcollationがutf8mb4_0900_ai_ciになった これに関して僕は強い懸念を持っている。MySQL 8.0以前において、ふつうのWebアプリケーションなどで日語を扱う場合、実用上デフォルトのutf8mb4_general_ciかutf8mb4_binの2択であったと思う。デフォルトがutf8mb4_general_ciなので新しく作られるアプリケーションは通常は濁点半濁点が区別される状態で世に出てくることになる。けどMySQL 8.0.1のデフォルトのutf8mb4_0900_ai_ciは濁点半濁点を区別しないので、将来ユーザー名を登録するところでバイ

    MySQL 8.0ではデフォルトで濁点半濁点を区別しなくなる - かみぽわーる
    stealthinu
    stealthinu 2017/06/22
    日本ではすぐ問題が出て設定変更されるだろうからいいだろうけど、日本語のことなんて知らん海外で作られたサービスで問題が出そうだよね。
  • MySQLの日本語コレーション - tmtms のメモ

    4月にMySQLの日語コレーションについて語り合う場に呼ばれていろいろ話を聞いてきました。すぐにブログを書こうと思ったんですが、はや2ヶ月経過…。 ときどき、自分がMySQLの文字コードに関して発表する際に、次のようなスライドをいれてるんですが、 MySQL 8.0 でとうとう日語コレーションが入ることになったのに、なんか期待してたのと違いました。 で、その辺の話を聞きました(2ヶ月も経ってるのでうろ覚え)。 Q. わざわざ日語ロケール作るんだったら日人が扱いやすいロケールにしてほしい utf8mb4_ja_0900_as_csはMySQLが独自に考えたものではない。Unicode規格に従っている。過去にいろいろ独自にやって失敗してきてるので、もう独自にやるのは避けたい。 ai(accent insensitive)で「ハ」=「パ」=「バ」になるのも、ci(case insensi

    MySQLの日本語コレーション - tmtms のメモ
    stealthinu
    stealthinu 2017/06/20
    ちょっと微妙な日本語コレーションのutf8mb4_ja_0900_as_csはunicode規格に従ってるからってことだった。なかなかつらい。
  • MySQLユーザ会会 in 長野 を開催しました - tmtms のメモ

    5/13(土)に「MySQLユーザ会会 in 長野」を開催しました。 nseg.connpass.com 「会」が2つあるのは仕様です。「MySQLユーザ会」の会合で「MySQLユーザ会会」です。 開催経緯はこんなかんじです。 自分もMyNAとかに気軽に遊びに行きたい。— とみたまさひろ🍣🍺 (@tmtms) 2017年1月5日 @tmtms 遊びに行きましょう! っていうか「俺がMyNAだ!」くらい言ってくれてもいいんじゃないでしょうかw— 坂井 恵(SAKAI Kei) (@sakaik) 2017年1月5日 @sakaik 「俺がMyNAだ!みんな長野に来い!」— とみたまさひろ🍣🍺 (@tmtms) 2017年1月5日 @tmtms 長野まで行きますよ!いつ行けばいいですか?— 🐬🍣🍻 (@RKajiyama) 2017年1月5日 この発言から早3ヶ月経ちましたが、5

    MySQLユーザ会会 in 長野 を開催しました - tmtms のメモ
    stealthinu
    stealthinu 2017/05/22
    とみたさん主催で「MySQLユーザ会」会をやったののまとめ。これもNSEGの活動扱いなので5月は3連チャンになってる。
  • Dockerコンテナ上のUbuntu15.10にMySQLを自動でセットアップする - Qiita

    経緯 現在のプロジェクトでは開発環境もプロダクションもDockerfileをビルドしてセットアップしています。プロダクション環境ではデータベースはAmazon RDSでMySQLを利用しているのでDockerfileにMySQLをインストールするコードを書く必要はないのですが、開発環境ではローカルのデータベースが必要になります。当初は普通にapt-getとかをDockerfileに書いていたのですが、MySQLの起動時にログ用のディレクトリがないとか、mysqld.sockにアクセスできないとか怒られていたので、Dockerビルドしたあとに手動でMySQLを入れていました。しかし、やっぱり1コマンドですべての環境が構築できればなと思い、苦労した結果MySQLもセットアップできるようになりました。 Dockerfile FROM ubuntu:15.10 MAINTAINER takuma

    Dockerコンテナ上のUbuntu15.10にMySQLを自動でセットアップする - Qiita
    stealthinu
    stealthinu 2017/05/02
    docker上のubuntuにmysqlを入れるとき最初にパスワード聞いてくるのをdebconf-set-selectionsに流し込むことで対処出来るみたい。あとmysqld起動時にディレクトリなくてコケるらしい。
  • DockerでMySQL on Ubuntuコンテナ - Qiita

    DockerMySQLコンテナを作成したかったのですが、私はubuntuしか使ったことが無かったため、自分の環境に合ったコンテナを作成するためのDockerfileを作成しました。単純に忘備録です。 なお、ホストOSもubuntu 14.04です。 Dockerfile # ubuntu 14.04のイメージを利用 FROM ubuntu:14.04 # Dockerfile作成者 MAINTAINER kxphotographer # コンテナのタイムゾーンがデフォルトでUTCになっているので、ホストOSの/etc/localtimeを読み込み専用でマウント VOLUME /etc/localtime:/etc/localtime:ro # そのままapt-getでインストールするとパスワードを聞かれる箇所で止まってしまうので、予め設定しておく。この例ではパスワードは「root」。 R

    DockerでMySQL on Ubuntuコンテナ - Qiita
    stealthinu
    stealthinu 2017/05/02
    docker上のubuntuにmysqlを入れるとき最初にパスワード聞いてくるのをdebconf-set-selectionsに流し込むことで対処出来るみたい。
  • MySQLのperformance_schemaでどれくらいの情報が見られるのか

    MySQL :: MySQL 5.6 Reference Manual :: 22 MySQL Performance Schema 5.6以降「よくなったよ!」「確かにね! でもメモリー」「」みたいな感じで扱われて結局まだONにしているインスタンスの少ないPerformance Schemaなのでちょっと練習中。 tpcc-mysqlとかでやると割と綺麗なクエリーをしているので面白い情報が出ない(ibdata1のfsyncに時間がかかってることなんて知ってるよ! って感じになる)ので、isucon2のアプリで試してみることにしますた。モリスさん++ livedoor Techブログ : 自家製 #isucon2 のつくりかた MySQLは5.6がいいのでMySQL :: Download MySQL Yum Repositoryで入れる。 $ sudo yum localinstall

    stealthinu
    stealthinu 2017/04/13
    MySQL5.6以降でデフォルトオンになってるperformance_schemaについて。色々有用らしいのだがこれ付いてるとメモリー食うらしい。/これオフにしたらメモリの問題が一気に解決したっぽい。うーむ。
  • Mroonga 5.06リリース!

    2015-08-31 Mroonga 5.06リリース! 今日は野菜の日ですね。 Mroonga 5.06 をリリースしました! インストール方法: インストール アップグレード方法: アップグレードガイド 今月は変更点が少なめですが、次のいずれかの条件にマッチする人はアップグレードを推奨します。 Mroonga 5.04または5.05を使っている マルチカラムインデックスを使っている それぞれ理由を説明します。 Mroonga 5.04または5.05を使っている Mroonga 5.04、5.05にはシャットダウン時にクラッシュするバグがありました。このバグはこのバージョンで修正しました。 シャットダウン時に常にクラッシュするわけではなく、次の条件を満たした時にクラッシュします。 Mroongaのテーブルを1つ以上開いている そのため、次のようにFLUSH TABLESを実行してすべての

    Mroonga 5.06リリース!
    stealthinu
    stealthinu 2017/04/13
    mroonga 5.04,5.05ではシャットダウン時にクラッシュするバグがあるのか。該当バージョンだったのでこれ踏んでるの関係あるのかなあ?今もう7.01とかなんだ。
  • MySQL の "Illegal mix of collations" エラーについて - tmtms のメモ

    MySQL で「Illegal mix of collations」というエラーが出ることがあります。テーブルの charset と接続の charset 等、すべてを utf8 などで統一してれば出ないので、あまり見ることはないかもしれません。 私はカラム毎に charset を指定することがあるので、時々このエラーにハマります。 たとえば、次のようなテーブルを作ったりします。 CREATE TABLE users ( id INT PRIMARY KEY AUTO_INCREMENT, email VARCHAR(320) CHARSET ascii UNIQUE, name VARCHAR(30) CHARSET utf8 ); メールアドレスの規約は、ローカル部が最大64バイト、ドメイン部が最大255バイト、それと @ の1バイトで合計最大320バイトなので、 VARCHAR(32

    MySQL の "Illegal mix of collations" エラーについて - tmtms のメモ
    stealthinu
    stealthinu 2017/03/14
    僕の知りたいことはすでに@tmtmsさんが調べてくれてる件。しかしconvertではbinaryは使えてもutf8_general_ciは使えないのかな。試したがダメだった。binaryは特殊なcharsetと書いてあるし。
  • Amazon Aurora 事例祭り(20170307)に行ってきたメモ | Hori Blog

    Hori Blogフリーランスでバックエンドエンジニアとして活動している Ryota Hori のブログです。 最近はテック系記事より雑記ブログ気味。 Amazon Aurora 事例祭り に行ってきたので、メモを公開します。 社内共有で Slack に貼ろうと思っていたメモなのですが、長くなったのでブログに公開します。 概要 Amazon Aurora 事例祭り (2017 年 3 月 7 日開催) | AWS セッション内容 Amazon Aurora を使いこなすためのベストプラクティスと最新アップデート @con_mame さん データベースソリューションアーキテクト 登壇資料: [Aurora 事例祭り]Amazon Aurora を使いこなすためのベストプラクティス 開発サイドからの知見と今後の展望 PostgreSQL For Aurora でるよ! 9.6.4 と互換 My

    Amazon Aurora 事例祭り(20170307)に行ってきたメモ | Hori Blog
    stealthinu
    stealthinu 2017/03/14
    auroraへの移行がらみの色々tips
  • パーティショニングの使用例 - カーディナリティが低いカラムを使って検索する場合

    MySQL 5.1で追加された機能にパーティショニングがある。これは適切に利用すれば非常に強力な機能であることは間違いないのだが、使いどころが難しい。なぜなら、 インデックスをつけるだけでカバー出来る場合が多い。 パーショニングを使わずに、単にテーブルを分けてしまえばいい。 テーブルが巨大にならないとあまり効果を実感できない。 使い方を間違えると性能が落ちてしまう。 などの問題があるからだろう。 そんなわけで、今日と明日でパーティショニングが役に立つシーンを2つ紹介しようと思う。今日は一つ目、インデックスをつけたいカラムのカーディナリティが低い場合だ。カーディナリティとは日語に訳すと濃度とか訳されるが、要は値の種類(分散具合)のことである。例えば、YesかNoの2つの値しかとらないカラムは非常にカーディナリティが低く、インデックスをつけるととても効率が悪い。インデックスを使って目的の行を

    パーティショニングの使用例 - カーディナリティが低いカラムを使って検索する場合
    stealthinu
    stealthinu 2017/02/13
    パーティショニングをHASH使ってやる例。確かにこういう場合はHASH使いたいな。
  • MySQLの文字コード事情 - tmtms のメモ

    この前 MySQL Casual に登壇して、「MySQLの文字コード事情」と称して発表してきました。 終電の都合で途中退席しましたが楽しかったです。また機会があれば参加したいです。 発表スライドはこちら MySQLの文字コード事情 2017版 from Masahiro Tomita www.slideshare.net 以下、補足のような何か。 「Charset≒エンコーディング (MySQLに限らない)」 英語版のWikipediaでもcharsetは Character encoding にリダイレクトされます。 自分がcharsetという用語に出会ったのはおそらくメールのContent-Typeヘッダが初めてだったと思います。 今ではメールだけではなくHTTPのヘッダでも使用されています。 なお、CharsetはInternet Assigned Numbers Authorit

    MySQLの文字コード事情 - tmtms のメモ
    stealthinu
    stealthinu 2017/02/07
    MySQLのcharset名でEUC-JPがujisという名前になったのはとみたさん由来だったとは… 人に歴史ありだな。あと「パ」と半角「ハ゜」が=だと一致するのにLIKEだと一致しないというのは罠だな。
  • MySQLアンチパターン

    PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)NTT DATA Technology & Innovation

    MySQLアンチパターン
    stealthinu
    stealthinu 2017/02/03
    あるあるネタ。サブクエリとか5.0の頃の感覚と5.7の感覚では全然違うよなあ。あと「誰でもroot」ってたぶん自分がこないだはまってたことでは。
  • MySQLの文字コード事情 2017版

    "Портирование Web SDK с JS на TS" Петров Григорий, Voximplantit-people

    MySQLの文字コード事情 2017版
    stealthinu
    stealthinu 2017/02/02
    エンコードと文字集合は別物なのか。その意識はなかった。例のUTF-8mb4問題についてのまとめ。
  • 寿司=ビール問題 : MySQL 8.0でのUTF8サポート入門 (MySQL Server Blogより) | Yakst

    これまでのMySQLでよく問題になった、絵文字や日語の文字の照合やソート順序の問題に関して、来たるMySQL 8.0では大幅な改善が加えられる予定になっている。この問題の概要と今後の改善方針について、MySQL開発チームからの解説。 免責事項 この記事はManyi Lu氏によるMySQL Server Blogの投稿「Sushi = Beer ?! An introduction of UTF8 support in MySQL 8.0」(2017/1/13)をユーザが翻訳したものであり、Oracle公式の文書ではありません。 MySQL 8.0での私たちの計画として、utf8のサポートを大幅に改善します。utf8サポート自体はMySQL 4.1の頃にさかのぼりますが、いくつかの制限が存在しています。記事タイトルにもある「寿司 = ビール」問題は、バグ#76553のことを指しています。少

    寿司=ビール問題 : MySQL 8.0でのUTF8サポート入門 (MySQL Server Blogより) | Yakst
    stealthinu
    stealthinu 2017/01/25
    mysqlの寿司ビール問題とハハパパ問題が解決されるのか。しかしutf-8の時代になってもこんなに文字コード問題が続くのだな。文字の扱いって基本的にほんと難しい問題なのだね。