Awesome Blogは、ITエンジニアに関する技術情報から働き方に関する記事まで多彩なトピックを紹介するメディアです。
【Windows】docker-composeを使ってmy.cnfの共有は気を付けよう!(🍣=🍺問題など)MySQLDockerdockerfiledocker-compose 概要 Docker-composeでSinatra + Nginx + MySQL を動かす時のハマりポイント - Qiitaのプログラムをdocker-composeで動かしていた時に🍣=🍺問題やハハ=パパ問題に遭遇しました。 その際、対処のためにmysqlの文字コードの設定を変えたかったのですが、結構ハマったのでメモです。 🍣=🍺問題?ハハ=パパ問題? 以下が参考になります。 MySQL と寿司ビール問題 - かみぽわーる MySQL で utf8 と utf8mb4 の混在で起きること - @tmtms のメモ 解決策としては文字コードは基本的にutf8mb4を使って、mysqlの設定でcolla
データベースの勉強をしている。 クエリを書く練習をしたりするにはやはり実際に動いている環境がほしい。 ただ、ローカルの開発用のデータベースとは別でやりたいとか、使い捨ての環境が欲しくなるときがある。 そんなときはDockerを利用することで使い捨ての環境を用意できる。 TL;DR MySQLコンテナーをポート割り当てして起動する 初期化データを投入したいときは/docker-entrypoint-initdb.dにデータをマウントしておく。 なお、ここではDocker自体の説明はしない。 また、初期化データの投入だけ知りたい場合は以下のページが詳しいのでそちらを見ることをおすすめする。 事前にデータ投入をした MySQL Docker イメージを作る場合は /docker-entrypoint-initdb.d を活用すると便利 https://kakakakakku.hatenablog
version: '3' services: # MySQL db: image: mysql:5.7 container_name: mysql_host environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: test_database MYSQL_USER: docker MYSQL_PASSWORD: docker TZ: 'Asia/Tokyo' command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci volumes: - ./docker/db/data:/var/lib/mysql - ./docker/db/my.cnf:/etc/mysql/conf.d/my.cnf - ./docker/db/sql:/
mysql8.0 Mysql8.0 ではデフォルトの認証形式を mysql_native_password から caching_sha2_password に変更している。 https://dev.mysql.com/doc/refman/8.0/en/caching-sha2-pluggable-authentication.html 起きたこと rake db:create で下記エラー Mysql2::Error (Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib/x86_64-linux-gnu/mariadb18/plugin/caching_sha2_password.so: cannot open shared object file: No such file or direc
概要 自身の備忘のために、以下の「Environment Variables」部分の和訳です。 MySQLの公式イメージ on DockerHub 本記事の最終更新時点での公開バージョンは以下の通りです。 8.0.19, 8.0, 8, latest 5.7.29, 5.7, 5 5.6.47, 5.6 mysqlイメージを起動する際に、docker runコマンドにおいて 1個かそれ以上の環境変数を渡すことで、MySQLインスタンスの設定を調整できます。 既にデータベースを含んでいるデータディレクトリを利用してコンテナを起動する際は 以下のいずれの変数も影響を及ぼさないということに注意してください。 つまり、既存のデータベースはコンテナの起動時に変更を加えられません。 MySQLが提供する環境変数のドキュメントも参照してください。 (特にMYSQL_HOSTのような変数はイメージ使用の際
docker-compose で手軽なLAMP環境 (PHP5.6 or 7.1切替, Apacheにmod_rewrite, GDインストール)MySQLDockerlampdocker-composePHP5.6 MAMP Proが動かなくなったのでこれを機会にdocker-compose で環境構築してみました。動作確認したのはMacのみです。 どうしてもphp5.6でないと動かないCMS案件(baserCMS3系)だったので、リライトやGDのインストールもやってみました。 (一応 php7.1も動かせます) githubのデータはこちら → Garyuten/dockker-lamp-php5.6 この環境が向いてる人 PHP5.6など古めホスティングサーバー案件の環境を作らないといけない人 Apacheのリライトの設定やGDのインストールなどを後からコマンドでやりたくない人 ホス
この記事は12/1のDocker2 Advent Calendar, 12/3のHamee Advent Calendarの記事です。 こんにちは。 docker composeめちゃくちゃ便利ですよね。 Chef, Vagrant, Puppet, Ansible, Fabric…とプロビジョニングツールとか仮想化ツールを色々触ってきましたが、 それらよりずば抜けて扱いやすいと思っているツールです。 で、ローカルで開発している時に困るのが、 MySQLをはじめDBにデータを持ってもコンテナを破棄するとデータがすっ飛ぶ 問題です。 軽量なアプリの場合ならDB破棄してシード流して、、、という構成でもイケるかも知れませんが、多くの場合オーバーヘッドが大きすぎてまともに開発できなくなると思います。 Docker for Macを使用している場合はこの問題は難なく解消できるのですが、 docker
TL;DR DockerでRailsとDBのコンテナを作成しWebアプリケーションを作成してたところ ブラウザ上では日本語が文字化けしないがdbコンテナの中に入ってmysqlにログインすると ???? に文字化けしている現象に遭遇した。 対象読者 or 前提条件 or 環境 DockerでMySQLコンテナを使用するマルチバイトなひと まずは調査 「Docker mysql 文字化け」でぐぐってみるとどうやら character_set_server=utf8 でないと発生するという記事が大量にヒットする。 Docker公式イメージのMySQLで文字コードを指定するのエントリを参考に過去にdocker-compose.ymlには対応を実装していたのでどうやらこれが問題ではなかった。 そもそもなにが原因で文字化けしてるのかがわからなかったので調べてみた。 $ mysql mysql> sta
Docker公式のMySQLイメージを使用 Docker Composeを使ってDocker公式のMySQLイメージを利用したら文字コードでハマった。 下記構成でDocker Compose利用時、アプリサーバとMySQLサーバの文字コードが相違した。 version: '2' services: db: image: mysql:5.5 volumes: - data:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: 'password' ports: - 3306 cache: image: memcached:1.4 ports: - 11211 rails: build: . command: bundle exec rails s -p 3000 -b '0.0.0.0' volumes: - .:/opt/rails ports:
DockerのOfficial RepositoriesのMySQLを使って、初回のDBデータ作成時に、カスタムSQLを実行する。 MySQLイメージは起動時にMySQLデータディレクトリ(/var/lib/mysql)の中身がない場合、mysql_install_dbなどが実行されます。その処理の中で、 /docker-entrypoint-initdb.dディレクトリにシェルスクリプトや、SQLが存在する場合、それを実行してくれる仕組みがあります。 サンプル サンプルとして、Docker Composeを使って、PHPMyAdminとMySQLサーバを構築してみます。 その際、初回起動時に2つのデータベースと1つのテーブルを作成します。 うち1つは環境変数MYSQL_DATABASEをセットすることによって自動的に作成されるデータベース、それ以外がdocker-entrypoint-i
とりあえず自分が慣れてるんで docker-compose のymlの書式で書きますが、コマンドラインからでも同じことはできるはずでやんす。 tl; dr MYSQL_DATABASE をenvに指定すれば1個は作ってくれるけど、複数個のDBは作ってくれない /docker-entrypoint-initdb.d にあるSQLは勝手に突っ込んでくれるしシェルがあればシェルを実行してくれる /docker-entrypoint-initdb.d にいい感じのシェルを書くといい感じにDBが作れるというか、なんでもできる。 やりたいこと 以下のような docker-compose.yml を用意して、2つのDBを作りたいと思っています。 version: '2' services: db: image: mysql environment: MYSQL_DATABASE: first_datab
この記事はもう随分古いので注意してください。 mysql8.0のdocker-comose.ymlを作成したので新しいmysqlを使う方はそちらを参照してください。 dockerでmysql8を使う ### ここから古いです。 ### 公式の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
はじめに MySQLの公式Dockerイメージは文字コードがlatin1だったり、タイムゾーンがTSだったり、localeがPOSIXだったりと、日本語環境で使うにはかなり不自由な感じです。 以下のdocker-compose.ymlを使うことで日本語環境をすぐに建てることが可能です。 最速で日本語環境を使いたい人はこちらをベースにしてみてください。 ファイル 以下のような構成を想定しています。 # Dockerfile_MySQL FROM mysql:5.6 # Set debian default locale to ja_JP.UTF-8 RUN apt-get update && \ apt-get install -y locales && \ rm -rf /var/lib/apt/lists/* && \ echo "ja_JP.UTF-8 UTF-8" > /etc/lo
一時期はalpineに乗っかったMySQLを使おうとしましたがMariaDBだったので断念。 いくら互換だとはいえ、まだ自分には早い。 そんなわけでDocker MySQL公式イメージの5.5を利用してDBを構築。 公式イメージ https://hub.docker.com/_/mysql/ 初期データを投入した状態でgithubにpushしようとしたら、rejectされてしまいました。 調べてみるとGithubのファイルサイズ制限にひっかかった模様 Working with large files https://help.github.com/articles/working-with-large-files/ 1ファイルあたり100MBまでとのこと。 InnoDBのibdata1がサイズ制限を超過していたのでした。かなりデータを厳選したんだけどな〜。 初期データインポートに使用したd
Vagrantに関する記事の執筆当初はVagrant+Ansible+Dockerを組み合わせて最強の開発環境を作る事をゴールにしていました。 既にDocker for WindowsやDocker for Macが正式版になって既に半年が経過しています。 もうVagrant+Ansibleに残っているメリットはクラウドマシンの操作と複数環境を立ち上げるくらいしか残っていません。 特殊な用途でVagrantを活用するケース以外、Dockerのみで開発環境を構築していくスタイルが主流になることでしょう。 よって、次の章からはDocker for WindowsとDocker for Macをベースにすすめていきます。 まずはDocker for Windows、もしくはDocker for Macを公式サイトからダウンロードしてインストールしましょう。 インストールが完了したら、ターミナルエ
米オラクルは2017年4月19日(米国時間)、米Dockerと提携し、Docker Certification Programを通じたソフトウェアマーケットプレース「Docker Store」で、自社の主力データベース、ミドルウェア、開発者ツールをDockerコンテナとして提供すると発表した。 Docker Certification Programは、Dockerのパートナーが技術をDocker EEプラットフォームに統合し、動作を保証するためのフレームワーク。Docker Storeではまず、「Oracle Database」「MySQL」「Oracle Java 8 SE Runtime Environment」「Oracle WebLogic Server」「Oracle Coherence」「Oracle Instant Client」がエンタープライズ対応Dockerコンテナと
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く