タグ

mysqlに関するhkjのブックマーク (21)

  • MySQLロックについて〜基礎編〜 を開催しました! - ANDPAD Tech Blog

    こんにちは!エンジニアの福間(fkm_y)です。 先日、弊社でデータベースの技術顧問をして頂いてる三谷(mita2)さんに開発部向けのMySQLロックのデータベース勉強会を実施したのでそのレポートをお伝えします。 開催背景 弊社では三谷さんによるデータベース勉強会を定期的に開催しています。以前にもロックに関するMySQL勉強会を開催していたのですが、1年半経過しており参加していない開発メンバーのほうが多くなっていたことやプロダクトの成長によりデッドロックなどのロックに起因する問題が目立ち始めていたことから増強版のMySQLロックのデータベース勉強会を開催することになりました。 概要 データベースのロックについて ロックタイムアウトについて デッドロックについて まとめ データベースのロックについて なぜデータベースにロック機構があるのかから知ることが重要です。性能と安全性を両立するためにあ

    MySQLロックについて〜基礎編〜 を開催しました! - ANDPAD Tech Blog
    hkj
    hkj 2022/03/30
  • 100秒でMySQLのローカル環境をDockerで作って、データも自動で入れる。最強のSQL練習環境構築法

    2022/2/26 追記】 主にはてブコメントで様々なご指摘を頂いたので、タイトルの修正&内容を一部追記しました。分かりにくいタイトルを付けてしまい申し訳ございません。ご指摘ありがとうございます。 もともと記事は自分用のメモを兼ねて駆け出しエンジニアの人が数人参考にしてくれたらいいかな、程度の気持ちで書いたものでした。 現在はてなブックマークのテクノロジーカテゴリーで 1 位になっており、予想の 1000 倍以上の人に見ていただける記事になってしまいました。 今後も精進します、ありがとうございます! 特に理由もなくローカルに MySQL を入れて遊びたくなる気持ちって定期的に湧きますよね。 私は湧きます、半年に 1 回ぐらい。 業務ではフロントを触ることが多く、DB はそれほど触りません。 そのため久々に MySQL をローカルで立ち上げようとするといつも手順を忘れてしまっていて、なん

    100秒でMySQLのローカル環境をDockerで作って、データも自動で入れる。最強のSQL練習環境構築法
  • homebrew で入れた MySQL 5.6 で general log を取る - tokuhirom's blog

    デバッグ時には general log を取るようにしたら便利。 発行されたログを全部見れる。 /usr/local/Cellar/mysql/5.6.22/my.cnf あたりに以下のように追記 [mysqld] general_log=1 general_log_file=/usr/local/var/mysql/general.log できたら、以下のようにコマンドを打ち込んで再起動する。 $ mysql.stop $ mysql.start あとは以下のようにして流れるログを眺めながらコーヒーを飲めば完成となる。 $ tali -F /usr/local/var/mysql/general.log

  • [Node.js][MySQL]Promiseを使ってトランザクションを書きやすくする

    準備: 動作確認用テーブル CREATE TABLE `posts` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `content` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE `logs` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `message` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; トランザクションの利用 mysql モジュールにはトランザクションの機能もありますが、実際に利用するとコールバックのネストが多く、読みづらいコードになって

  • 【MySQL】一般クエリログをデータベースに保存する at softelメモ

    問題 実行したSQLをログに残しておくと、開発、デバッグのときに便利です。何か問題があったときやチューニングなどに、なにげに大活躍します。 そういうわけでSQLはログに残したいのですが、プログラム側で自力でログを残すのではなく、MySQLさんにログ保存をお願いできるでしょうか。 答え MySQLのログには、復旧等にも重要な役目のあるバイナリログという更新系のSQLのログ、遅いSQLを教えてくれるスローログ、エラーを教えてくれるエラーログなどのほかに、一般クエリログという、SELECE文なども含めてすべてのSQLを残せるログがある。 MySQL5.5(5.1でも同じでよいらしい)で一般クエリログを有効にするには、my.cnfの[mysqld]セクションで以下のように記述する。 log-output=TABLE general_log=1 スロークエリログも取るときはslow_query_lo

    【MySQL】一般クエリログをデータベースに保存する at softelメモ
    hkj
    hkj 2020/03/06
  • MySQL で utf8 と utf8mb4 の混在で起きること - tmtms のメモ

    MySQLUTF-8 で使おうと思ってハマりがちなのは charset utf8 を指定してしまうことです。 MySQLUTF-8 には歴史的事情により utf8 と utf8mb4 の二つあります。 UTF-8 は1バイト〜4バイトで1文字が構成される文字コードですが、MySQL の utf8 は4バイト文字を扱うことができません。ハマりたくなければ utf8mb4 を使いましょう。 utf8 を使ってしまった場合に4バイト文字がどのように扱われるか、自分でもうろ覚えだったのでメモしておきます。 登録 接続が utf8mb4 でカラムが utf8mb4 あたりまえですが、そのまま登録されます。 mysql> insert into utf8mb4 (c) values ('美味しい🍣と🍺'); mysql> select * from utf8mb4; +--------

    MySQL で utf8 と utf8mb4 の混在で起きること - tmtms のメモ
  • 書籍発行のお知らせ:詳解MySQL 5.7 〜進化したMySQLをよく知るためのテクニカルガイド〜

    既に昨日のdb tech showcaseのスライドでご存じの方も多いだろうが、この度MySQL 5.7の新機能を解説するための書籍を発行させていただくこととなった。8月23日発売予定である。 MySQL 5.7の新機能については、これまでブログでは紹介してこなかった。というのも、あまりにもボリュームが多すぎて、ブログという媒体でカジュアルに紹介するには向いていないと思ったからだ。とはいえ、MySQL 5.7を皆さんに使っていただくには、誰かが新機能をしっかりと解説しなければならない。どうするべきか考えた結果、書籍としてまとめて出させていただくことになった。 新機能について真面目に解説しようとすると、新しいポイントがどこなのかということを言及するために、結局のところ元々の機能についてもある程度解説が必要になってしまう。そういうわけで、この書籍では、MySQLが持つ機能の基的なコンセプトや

    書籍発行のお知らせ:詳解MySQL 5.7 〜進化したMySQLをよく知るためのテクニカルガイド〜
  • dockerでmysqlを使う - Qiita

    この記事はもう随分古いので注意してください。 mysql8.0のdocker-comose.ymlを作成したので新しいmysqlを使う方はそちらを参照してください。 dockermysql8を使う ### ここから古いです。 ### 公式のmysqlを使えるようにするのにハマったのでメモ。 ※Dockerのインストールが古かったので新しいリンクに変更しました。 Docker for mac install 公式のmysqlイメージを使う docker pull mysql docker run --name mysql -e MYSQL_ROOT_PASSWORD=mysql -d -p 3306:3306 mysql # 接続確認 passwordはmysqlになります。 mysql -h $(boot2docker ip) -uroot -p

    dockerでmysqlを使う - Qiita
  • 嵐のコンサートがあるとダブルブッキングしてしまうホテル予約システムを作ってみた

    今年の5月1日に、仙台市内のホテルで多重予約のトラブルが発生したと報道されています。 部屋数203室の仙台市のビジネスホテルで、9月18~23日の宿泊予約を数千件受け付けるトラブルがあった。アイドルグループ「嵐」のライブが宮城県内で開催される期間だった。インターネットでの申し込みが殺到し、システム障害が起きたとみられるという。 トラブルがあったのは、仙台市泉区の「ホテルルートイン仙台泉インター」。ホテルなどによると、9月19、20、22、23日に宮城スタジアム(宮城県利府町)で嵐がライブを開くことが明らかになった後の5月1日午前5時ごろ、ネットを使った予約申し込みが殺到していることに気づいたという。 203室のホテルなのに「予約」数千件 嵐公演で殺到か:朝日新聞デジタル より引用 5月1日の朝に何があったのか調べてみると、この日の早朝にテレビや新聞でコンサートの情報が流れたようですね。 お

    嵐のコンサートがあるとダブルブッキングしてしまうホテル予約システムを作ってみた
  • MySQLテーブル設計入門

    行ロックと「LOG: process 12345 still waiting for ShareLock on transaction 710 afte...Masahiko Sawada

    MySQLテーブル設計入門
    hkj
    hkj 2015/05/01
  • Rails4 + Fluentd + MySQL でランキング機能作ってみた - 筋肉とエンジニアリングで すべてを解決するブログ

    アクセスランキングを作ってみよう! 今、Rails4 を使ってアクセスログからランキング作ってみたいなぁーと思ってたんですが、みんなどうやってんだろうって聞いてみたところ、 Fluentd ってのを組み込むだけで簡単に集計とかできるよーって話だったので、使ってみました。 Fluentd とは まず読み方は、 「ふるーえんとでぃー」であって、「ふるーえんど」とかじゃないっぽいです。d はたぶんデーモンの d 。 色々説明面倒なんで省略しますが、ログ収集元とか出力先が簡単に設定できて、自分の欲しい形でログ保持できますよーって感じっぽい。なので、 「シェルスクリプトで処理した tail の処理結果をファイルに」「nginx から出力されたアクセスログを mongoDB に」とかそういう処理を自前で書く必要なく、簡単な設定だけでいけちゃう。 詳しくは → 柔軟なログ収集を可能にする「fluentd

    Rails4 + Fluentd + MySQL でランキング機能作ってみた - 筋肉とエンジニアリングで すべてを解決するブログ
  • Sequel Pro

    Full MySQL Support Sequel Pro is a fast, easy-to-use Mac database management application for working with MySQL databases. Perfect Web Development Companion Whether you are a Mac Web Developer, Programmer or Software Developer your workflow will be streamlined with a native Mac OS X Application! Flexible Connectivity Sequel Pro gives you direct access to your MySQL Databases on local and remote se

    Sequel Pro
  • SQLインジェクションゴルフ - なんと3文字で認証回避が可能に

    昨日のエントリ「SQLインジェクションゴルフ - 認証回避の攻撃文字列はどこまで短くできるか?」にて、認証回避の攻撃文字列が5文字にできる(「'OR'1」)ことを示しましたが、@masa141421356さんと、やまざきさん(お二人とも拙著のレビュアーです)から、idとpwdにまたがった攻撃例を示していただきました。やまざきさんの例は、MySQL限定ながら、なんと3文字です。これはすごい。 @masa141421356さんの攻撃例 @masa141421356さんのツイートを引用します。 @ockeghem 大抵のDBでid=''OR' AND pwd='>' ' が通ると思います(id側に「'OR」, pwd側に「>' 」で6文字)。長さ0の文字列がNULL扱いされないDBなら最後のスペースを消して5文字です。 — masa141421356 (@masa141421356) June

  • 高機能なMySQLフロントエンド·Sequel Pro MOONGIFT

    Webシステムの開発=要DBという風潮がある。確かにデータをストレージできると可能性が飛躍的に拡大する。さらに最近は優秀なO/Rマッピングソフトウェアも登場し、DBDBとして意識することなく開発ができるようになってきている。 メインウィンドウ だがそのために構造や値の制約を設定せずに運用されてしまうのもよく見られるようになってきた。DBの使い方や運用法を再検討すべきときなのかも知れない。 今回紹介するオープンソース・ソフトウェアはSequel Pro、Mac OSX向けのMySQLフロントエンドだ。 Sequel ProはCocoaMySQLからフォークしたプロジェクトで、CocoaMySQL同様にGUIベースで動作するMySQLフロントエンドになっている。データベースを選択し、テーブルの一覧、追加、削除はもちろんのこと、テーブル構造の修正なども容易にできる。接続はSSHを使ったものにも

    高機能なMySQLフロントエンド·Sequel Pro MOONGIFT
  • RubyでMySQLに繋ぐためのruby-mysqlとmysql2 - たごもりすメモ

    このエントリは 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で検索するとト

    RubyでMySQLに繋ぐためのruby-mysqlとmysql2 - たごもりすメモ
    hkj
    hkj 2011/12/10
  • debianでMySQL with sennaのパッケージを作ってみる - フタなしカンヅメ

    debian lennyをインストールしてみました。debianは過去に一度触ったことがあってそれ以来です。まだsargeも出ていなかった頃だったと思います。 FreeBSDとなんとなく似てる所もあるのですが、最小構成でインストールするとほんとにスッキリしてていいですね。 それで早速いろいろインストールしていたのですが、sennaをバインディングしたMySQLをインストールしようとして、ちょっと手間取りました。ソースから入れてしまえば早いのかもしれないですが・・・。 sennaはソースからインストールしたのですが、どうもsennaなMySQLパッケージを作ると、依存関係とかで引っかかってしまいました。 dpkg-shlibdeps: failure: no dependency information found for /usr/local/lib/libsenna.so.0 (used

    debianでMySQL with sennaのパッケージを作ってみる - フタなしカンヅメ
  • ゆーすけべー日記

    サキとは彼女の自宅近く、湘南台駅前のスーパーマーケットで待ち合わせをした。彼女は自転車で後から追いつくと言い、僕は大きなコインパーキングへ車を停めた。煙草を一吸ってからスーパーマーケットへ向かうと、ひっきりなしに主婦的な女性かおばあちゃんが入り口を出たり入ったりしていた。時刻は午後5時になる。時計から目を上げると、待たせちゃったわねと大して悪びれてない様子でサキが手ぶらでやってきた。 お礼に料理を作るとはいえ、サキの家には材が十分足りていないらしく、こうしてスーパーマーケットに寄ることになった。サキは野菜コーナーから精肉コーナーまで、まるで優秀なカーナビに導かれるように無駄なく点検していった。欲しい材があると、2秒間程度それらを凝視し、一度手に取ったじゃがいもやら豚肉やらを迷うことなく僕が持っているカゴに放り込んだ。最後にアルコール飲料が冷やされている棚の前へ行くと、私が飲むからとチ

    ゆーすけべー日記
  • MySQLのrootのパスワードを忘れた場合に変更する方法メモ - uncertain world

    前任の人がrootのパスワード残さないまま居なくなって、 とっても困ったので(grantできない)、 初期化する方法見てたんだけど、日語マニュアルのじゃ治らなくて、 家の方みたら治った > UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root'; > FLUSH PRIVILEGES; これでMyNewPassに新しいパスワード入れればokみたい。 ・MySQL :: MySQL 5.1 Reference Manual :: B.1.4.1 How to Reset the Root Password http://dev.mysql.com/doc/refman/5.1/en/resetting-permissions.html ・5/31追記 なぜかホッテントリに上がってしまっていたので、ちょっ

    MySQLのrootのパスワードを忘れた場合に変更する方法メモ - uncertain world
  • はてなブログ | 無料ブログを作成しよう

    台北市立動物園と迪化街めぐり 子連れ台湾#5 年越し台湾旅行5日目、レジャーや友人との事を楽しむ日です。前日の様子はこちら www.oukakreuz.com 台北市立動物園へ パンダ館 パンダが見られるレストラン 迪化街へ 林茂森茶行でお茶を購入 小花園で刺繍グッズを購入 黒武士特色老火鍋で夕 台北市立動物園へ 松…

    はてなブログ | 無料ブログを作成しよう
  • MySQLのストレージエンジン変更

    DoRuby! (ドルビー!) は現場のエンジニアによる、主にRubyなどの技術に関する様々な実践ノウハウを集めた技術情報サイトです。 君は知っているか? MySQLに、ストレージエンジンというものがある事を。 【知っている】 → え?知ってる?じゃあもう読まなくてもいいかもね。(次回にご期待ください) 【知らない】 → そうか・・・・あんた、オレと同じだな。(続きをお読みください) ストレージエンジンていうのは、SQLの実データがどのような形式で、 どのように格納されているかを管理している部分で、それらのデータ にアクセスする処理を行うとの事。 で、以下の二つが代表的なものだそうです。 【MyISAM(マイアイサム)】 ・テーブル単位のファイルによるデータ構造を持つ。 ・トランザクション機能がない分、軽快に動作する。 ・ロックはテーブル単位でかかる。