オラクルはMySQLをこの先どう進化させていくのか、オンプレミスからクラウド上の分散インメモリデータベース、そしてメインストリームなプロダクトへ[PR] MySQLがオラクルの製品群に加わってから10年以上が経過しました。 オラクルが2010年1月にサン・マイクロシステムズの買収を完了したことでオラクル製品群の一部となってからも、MySQLはオープンソースの代表的なデータベースとして、GPLと商用版のデュアルライセンスを維持し続けています。 と同時にMySQLは2010年以降も着実に機能や性能を向上させてきました。 2010年に登場したMySQL 5.5ではInnoDBがデフォルトのデータベースエンジンとなり耐障害性や性能が大きく向上。 2015年に登場したMySQL 5.7ではさらに最大で3倍の性能向上とマルチソースレプリケーションなどのレプリケーション機能などの強化、 2018年に登場
Ubuntu 20.04 LTS が、2020年4月24日にリリースされた。 先日の記事では Ubuntu 18.04 LTS Server からのアップグレードだったが、新規に「Ubuntu 20.04 LTS Server」をインストー... 準備 MySQLサーバとクライアントツールのインストール $ sudo apt install mysql-server mysql-client サービスの起動確認 $ sudo service mysql status ● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2020
Ubuntu 20.04へ最新版のMySQL 8.0をインストールしていきます。 公式の手順に従って、MySQLのインストールを行います。 本記事の内容 MySQLとは?MySQLのシステム要件MySQLのインストールMySQLの初期設定 それでは、上記に沿って解説します。 MySQLとは? MySQLは、最も有名なオープンソースのデータベースです。 ただし、最近はその人気に陰りが出てきています。 以下は、「MySQL」の検索ボリュームの傾向です。 期間は、直近5年間となります。 Oracleに買収されて以降は、MySQLの人気は下がる一方です。 それでも、まだまだ最も利用されているデータベースであることに変わりありません。 何より、安定した技術(枯れた技術とも言う)には安心感があります。 その分だけノウハウも蓄積されていることでしょう。 そんなMySQLですが、バージョンがちょっと複雑で
異なるバージョン、もしくは、異なる サーバ間で、データベースのdump (mysqldump) および restore リストアを実施した時に、リストア先にデータベースもテーブルもないはずなのに、キー重複(Duplicate entry)が起きたりしたことはありませんか? え?、なにもないはずなのに。。。って。オカルトですよね。 この原因って、dump時の文字コードが原因している場合が多いですって話です。。。 プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ) 作者: 矢野啓介出版社/メーカー: 技術評論社発売日: 2010/02/18メディア: 単行本(ソフトカバー)購入: 34人 クリック: 578回この商品を含むブログ (129件) を見る 今回は、MySQL5.7のdumpをMySQL8.0にリストアしている
ここではORACLEデータベースのSQLのDELETE文で副問合せ(サブクエリー)を使う方法を紹介しています。 DELETE文のサンプルは↓で多数紹介していますので参考にしてください。 >>【SQL】DELETE文の書き方:サンプル多数あり DELETE文の基本構文 DELETE文の基本構文は次の通りです。 WHERE条件で副問合せ(サブクエリ)を使うことが出来ます。 DELETE FROM テーブル名 [WHERE 条件]; 副問合せ(サブクエリ)を使ったSQLサンプル DELETLE文のWHERE句には、自由に副問合せを書くことが出来ます。 IN句を使う方法 次のSQLでは、TAB1テーブルの列を削除するとき、TAB2テーブルのCOL1列と値が一致するレコードだけを削除しています。 DELETE FROM tab1 a WHERE a.col1 in (SELECT b.col1 FR
今回は MySQL 5.6 を Ansible からインストールしてみたいと思います。 Web アプリケーションでは必須となる DBMS として利用する機会は多いと思います。 今回は最新版の 5.7 ではなく 5.6 をインストールします。 環境 CentOS 6.7 ansible 2.0 ※開発環境利用の為、iptables / SELinux については事前に無効化しております。 ※yum で "Developer tools" グループを インストールし、必要なコマンドは適宜導入しています。 Playbook の記述 Playbook は Role 構造で記述します。 Role 作成方法については こちら を参照してください。 構成は以下の通りです。 . ├── group_vars │ └── dbservers # 各タスクで使用する変数定義 ├── hosts ├── rol
http://docs.ansible.com/ansible/mysql_user_module.html MySQLdbライブラリのインストール mysel_userモジュールを使用するためには下記記載のようにPythonのMySQLdbライブラリが必要。 Requirements (on host that executes module) MySQLdb http://docs.ansible.com/ansible/mysql_user_module.html#requirements-on-host-that-executes-module Amazon Linux環境だったのでYumリポジトリからインストールすることができた。 ただ、バージョンを指定する必要があった。指定がない状態だと2.6用のがインストールされる。 # yum install -y MySQL-python
Django と MySQL(CHARACTER SET: utf8mb4) を合わせて使う場合、 (1071, 'Specified key was too long; max key length is 767 bytes') (1709, 'Index column size too large. The maximum column size is 767 bytes.') などのエラーが出てしまうことがあります。 utf8の場合は Databases | Django documentation | Django らへんに載っている手順通りに設定すれと問題になることはないと思いますが、utf8mb4を使用するとなると、上記のエラーを回避するために特別な手順が必要になるので、初期セットアップの手順から備忘録的にまとめます。 (初期セットアップとかいいから上記の ...767 byt
オプションファイルの使用 my.cnfに設定できる値 設定値にはセクション(グループ?)と言われる、 オプションを設定するプログラムまたはグループの名前以下に設定する。 ([mysqld]のように書かれているところのこと) [client] # clientセクション: mysqlクライアントツールへの設定 port=3306 socket=/tmp/mysql.sock [mysqld] # mysqldセクション: mysqlサーバーへの設定 port=3306 socket=/tmp/mysql.sock key_buffer_size=16M max_allowed_packet=8M [mysqldump] # mysqldumpセクション: バックアップコマンドへの設定 quick [mysqld_safe] # mysqld_safeセクション: 起動ファイル設定 log-e
リポジトリの標準でないバージョンにmysqlを入れたいとき、mysql-community-serverを入れることはよくあると思います。 その関連でひっかかったエラーを忘備録として残します。(あんまりググっても引っかからなかったので) 遭遇したエラーと解決策 エラー pip install flask-mysqldb時にOSError: mysql_config not found 解決策 sudo yum install mysql-community-devel 遭遇したエラー # pip install flask-mysqldb 以下のエラーメッセージ Collecting flask-mysqldb Using cached Flask-MySQLdb-0.2.0.tar.gz Requirement already satisfied (use --upgrade to up
MySQL のメジャーバージョン 8 が 2018/4 にリリースされました。 今回はPacker+Ansibleで MySQL8のAMIを作成しようとして苦労したところをまとめます。 MySQL8のAMIを作りたい普段、AWSを利用する上ではRDSを使うことが多いので、MySQL5.x系を選択することになります。 今回はMySQL8を使った研修を社内で実施するため、MySQL8のAMIを作る必要がありました。 環境情報今回は以下のような環境で実施しています。 CentOS 7Ansible 2.6.1Packer 1.1.3 playbookのサンプル先に結論を書きます。 ansible playbookのサンプルは以下のようになりました。 なお、今回はメインのタスク定義の部分だけとし、その他の部分やPackerは冗長になるので割愛しています。 1--- 2- name: downloa
見よう見まね。Ansible で MySQL を導入してみました。 課題多いです。忘れないようにメモメモ。 環境 Vagrant 1.9.2 ansible 2.2.1.0 MySQL 5.7 CentOS 7.2 playbook MariaDBの影響を受けたくなかったので、削除しました。 ansibleには、mysql-pythonが必要でした。 MySQL5.6から?、temporary passwordが自動設定されちゃいます。 自分で設定したいrootパスワードを再設定しました。 --- - name: mysql install hosts: all become: true tasks: - name: remove mariadb-libs yum: state: absent name: mariadb-libs - name: install mysql reposit
$ cat mysqldump.yml --- - name: This is a mysqldump and restore example # リストアしたいDBサーバ hosts: kickstart tasks: - name: install necessary libraries package: name: MySQL-python state: present # まずmysqldumpする - name: Dump database to hostname.sql mysql_db: state: dump ## DBの名前 #name: all # ←allにすると全DBをdumpする name: from_db target: /tmp/{{ inventory_hostname }}.sql # できたdumpをimportする - name: Import fil
バンクーバーの塩谷です。 端末(Mac)からEC2インスタンスにインストールされているMySQLにAnsibleを使用してdatabaseを作成しようとしたところ、エラーが発生しました。対処に少しハマってしまったのでメモします。 エラー内容 fatal: [Instance1]: FAILED! => {"changed": false, "msg": "The MySQL-python module is required."} fatal: [Instance1]: FAILED! => {"changed": false, "msg": "The MySQL-python module is required."} PLAY [Instance1] ********************************************************************
ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog はじめまして、Yahoo!ショッピングでシステム開発を担当している村上です。 Yahoo!ショッピングでは数億件にのぼる商品が日々更新されています。 今回はそれを支える巨大なDBの運用の中で遭遇したMySQLのアンチパターンと、回避した方法について紹介いたします。 特定のテーブルをJoinするとすごく遅くなる Yahoo!ショッピングでは商品を出品するためのツールがあります。 商品情報には「商品名」「価格」といった、任意で設定可能な項目のほか、「ブランド」「商品種別」など、製品ごとに入力する内容が決まっている項目を、マスター情報としてテーブルで管理しています。 このマスター情報を利用して、出品の際に入力情報が正確であるかどうか確か
mysqlでjoinした結果をupdateする場合の構文を忘れがちなので備忘録としてメモ。 テーブル作成 --- ユーザーメインテーブル CREATE TABLE `user_main`( `user_id` int, `name` text, PRIMARY KEY (`user_id`) ); --- ユーザーサブテーブル CREATE TABLE `user_sub`( `user_id` int, `type` int, PRIMARY KEY (`user_id`) ); INSERT INTO user_main values(1, 'name1'); INSERT INTO user_main values(2, 'name2'); INSERT INTO user_main values(3, 'name3'); INSERT INTO user_sub values(1,
はじめに Mysqlでbooleanという型を指定してテーブルが作れるので、 実際どういう扱いになっているのか調べてみました。 テストしたMysql ver. 5.1.73 boolean型でテーブルを作ってみる -- こんなのを作ってみる create table `bool_check` ( `bool` boolean ); mysql> create table `bool_check` ( -> `bool` boolean -> ) -> ; Query OK, 0 rows affected (0.06 sec) mysql> show create table bool -> ; +-------+-----------------------------------------------------------------------------------------
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く