自己紹介 とみたまさひろプログラマー (Ruby & C) 日本 MySQLユーザ会代表

Similar documents
自己紹介 とみたまさひろ MySQL 3.21 に日本語 charsetを追加 MySQLのRubyバインディング作成

スライド 1

PowerPoint Presentation

MySQL 日本語処理完全解説 住商情報システム株式会社プラットフォームソリューション事業部門 IT 基盤ソリューション事業部オープンソースシステム部玉川修一 1

MySQL5.0データベース ログファイルおよびステータスの収集

HeartCoreインストールマニュアル

# mv httpd tar.gz /usr/local/src /usr/local/src # tar zxvf httpd tar.gz make #./configure # make # make install Apache # /usr/local/apac

VB実用Ⅲ⑩ フリーデータベースⅡ

HeartCoreインストールマニュアル(PHP版)

HeartCore(PHP 版 ) インストール手順について説明いたします なお 本資料は 例として下記内容を前提として説明しております 環境情報 対象 OS: Linux ( ディストリビューション : Red Hat Enterprise Linux Server) APサーバ : Apache

MxLogonサーバサイドツールキット用UI

untitled

CLUSTERPRO for Linux MySQL HowTo

HP OpenSource ブループリント

untitled

Microsoft PowerPoint - MySQL-backup.ppt

MySQL5.0データベース ログファイルおよびステータスの収集

MySQL Cluster

1.SqlCtl クラスリファレンス SqlCtl クラスのリファレンスを以下に示します メソッドの実行中にエラーが発生した場合は標準エラー出力にメッセージを出力します (1)Connect() メソッド データベースへ connect 要求を行います boolean Connect(String

Slide 1

CodeGear Developer Camp

本当はこわいエンコーディングの話 とみたまさひろ 東京 Ruby 会議 本当はこわいエンコーディングの話 Powered by Rabbit 2.0.6

復習 (SQL 文 ) 3/6 復習 (SQL 文 ) 4/6 表の作成 CREATE TABLE...; 表の削除 DROP TABLE テーブル名 ; 表内のデータが全て消えてしまう. 表内のデータを得る SELECT 列名 FROM 表名...; 表にデータを挿入する. INSERT INTO

はじめに コース概要と目的 Oracle を使用した開発 管理を行う上でのファースト ステップとして リレーショナル データベース管理ソフトウェアである Oracle の役割 基本機能 基本アーキテクチャを幅広く理解することを目的としています 受講対象者 これから Oracle を使用する方 データ

スライド 1

iNFUSE インフューズ

システムパッケージリリース情報-Version5.0.0pre

1.MySQL とはなにか? MySQL とは ANSI/ISO の SQL に準拠した RDBMS( リレーショナルデータベース管理システム ) です 現在は サン マイクロシステムズが開発をしております 特徴として 機能面では PostgreSQL と比べやや劣りますがデータの読み出し (SEL

iNFUSE インフューズ

XOOPS Cube インストールマニュアル

Sequel のすすめ 私が SQL を嫌いな理由 とみたまさひろ RubyHiroba Sequel のすすめ - 私が SQL を嫌いな理由 Powered by Rabbit 2.0.7

スライド 1

XAMPP で CMS のお手軽 テスト環境を手に入れよう 2011/5/21 上村崇 1

Microsoft Word - Android_SQLite講座_画面800×1280

CMS入門

w w w 2

KWCR3.0 instration

Oracle Database Connect 2017 JPOUG

テクニカルドキュメントのテンプレート

PostgreSQLのセキュリティを極める

スライド 1

目次 1. 動作環境チェック 動作必要環境 Java のインストール Java のインストール Firebird のインストール Firebird のインストール Adobe Reader のインストール

CLUSTERPRO による MariaDB の HA クラスタ動作検証 第 1 版 日本電気株式会社クラウドプラットフォーム事業部 CLUSTERPRO グループ

PowerPoint プレゼンテーション

How to Use the PowerPoint Template

GXS-I WebIEAS オペレーション ガイド 版 : 第 1 版 2007 年 01 月 22 日 第 2 版 2011 年 12 月 02 日 第 3 版 2012 年 04 月 27 日 第 4 版 2013 年 06 月 17 日 ( 本書 ) GXS 株式会社 (c) 20

Getting Start mdc (Mail Destination Confirm) Getting Start mdc (Mail Destination Confirm) Rev /11/3 目次 Getting Start mdc (Mail Destination Con

目次 1 はじめに 目的 用語 移行の流れ 移行対象 / 対象外と事前準備の要否 メール関係の事前準備 メールアカウントの確認と変更 パスワードの確認と変更...

Samba Install and Update Guide

PowerPoint Presentation

POSTGRESQL 9.2 /POSTGIS (WINDOWS 版 ) 導入 設定手順書 (VER. 1) June 20, 2014

プレポスト【問題】

パスワード管理

SOLIDWORKS Electrical SQL 接続の可否確認 SQL サーバーにアクセスできない場合 SQL サーバー ( のサービス ) が正常に起動しているか プロトコルが正常に動作しているか 使用するポートが開放されているか SQL ログインユーザーの情報に誤りは無いかなど その原因は多

OpenAM 9.5 インストールガイド オープンソース ソリューション テクノロジ ( 株 ) 更新日 : 2013 年 7 月 19 日 リビジョン : 1.8

InfoPrint 5577/5579 ネットワーク設定ガイド(第5章 UNIX/Linux環境で使用する)

InfoPrint 5577/5579 ネットワーク設定ガイド(第4章 UNIX/Linux環境で使用する)

2. Docker の基本的な操作 1 docker hub の参照 2 DockerHub の Explorer リンクからアプリケーションを参照 3 アプリケーション検索 4 tag について 3. docker 基本コマンド 1 docker の

Oracle9i Application Server for Windows NT/2000 リリース・ノート追加情報 リリース

Microsoft Word - tutorial3-dbreverse.docx

スライド 1

eラーニング資料 e ラーニングの制作目標 データベース編 41 ページデータベースの基本となる概要を以下に示す この内容のコースで eラーニングコンテンツを作成予定 データベース管理 コンピュータで行われる基本的なデータに対する処理は 次の 4 種類です 新しいデータを追加する 既存のデータを探索


<Documents Title Here>

Microsoft Word - JDBC検証 docx

関係データベース

SecureAssist Enterprise Portal 導入ガイド Version 3.0 対応版 パッケージのダウンロード サーバーへのインストール 管理画面へのログインと基本設定

オ ー プ ン ソ ー ス ソ フ ト ウ ェ ア で 企 業 の 情 報 化 デジタルマーケティングで 事 業 を 活 性 化 Gennai3 株 式 会 社 神 奈 川 県 川 崎 市 川 崎 区 渡 田 新 町 電 話 FAX 0

untitled

mySQLの利用

3 パッケージからのインストール

PostgreSQLによる データベースサーバ構築技法

Microsoft Word - WE-InstMan382J sol.doc

操作方法 XXXTOEMF は コマンドライン形式のアプリケーションです 通常のコマンドと同じように コマンドラインからの実行やバッチファイルに組み込むことが可能です インストールについては, 別紙の KDxxxx コンバートソフトの特記事項について を参照してください ここでは 直接コマンドライン

PowerPoint Presentation

自己紹介 指崎則夫 ( さしざきのりお ) SCUGJ 運営スタッフ Microsoft MVP

リレーショナルデータベース入門 SRA OSS, Inc. 日本支社 Copyright 2008 SRA OSS, Inc. Japan All rights reserved. 1

意外と簡単!? Oracle Database 11g -バックアップ・リカバリ編-

CLUSTERPRO for Linux PostgreSQL HowTo

これらの情報は 外部に登録 / 保存されることはございません 5 インターネット接続の画面が表示されます 次へ > ボタンをクリックしてください 管理者様へ御使用時に設定された内容を本説明文に加筆ください 特に指定不要で利用可能であった場合は チェックボックスを オフ していただきますようご案内くだ

復習 (SQL 文 ) 3/6 復習 (SQL 文 ) 4/6 表の作成 CREATE TABLE...; 表の削除 DROP TABLE テーブル名 ; 表内のデータが全て消えてしまう. 表内のデータを得る SELECT 列名 FROM 表名...; 表にデータを挿入する. INSERT INTO

etrust Access Control etrust Access Control UNIX(Linux, Windows) 2

Microsoft Word JA_revH.doc

ログインおよび設定

インストールガイド ネットワーク PA システムマネージャー AI-1000SM このたびは TOA ネットワーク PA システムマネージャーをお買い上げいただき まことにありがとうございます 本書は AI-1000SM ネットワーク PA システムマネージャーをセットアップするための手順書です 正

Upload path ファイル送信先ディレクトリのパスを指定します ホームディレクトリに画像を送信する場合は空白のまま サブディレクトリに画像を送信する場合はディレクトリ名を指定します さらに下位のディレクトリを指定する場合は \ マークを利用します 例 ) ホームディレクトリ以下の camera

Microsoft Word - SQLServer_fra_Linux_v1.1.docx

MATCHING SYSTEM マッチングサイト構築システム 設置マニュアル このたびは マッチングサイト構築システムをご利 いただき 誠にありがとうございます 本マニュアルでは 主にシステムの設置について説明しています 尚 内容はバージョンアップなどにより予告なく変更される場合があります

ADempiere (3.5)

CLUSTERPRO MC ProcessSaver 2.3 for Windows ユーザーズガイド ( コマンド編 ) 2018(Jun) NEC Corporation はじめに コマンドリファレンス メッセージ一覧

ssh

データベース暗号化ツール「D’Amo」性能検証

Troubleshooting SSH connections with Reflection X

10th Developer Camp - B5

CLUSTERPRO MC ProcessSaver 1.0 for Windows ユーザーズガイド ( コマンド編 ) 2012(Sep) NEC Corporation はじめに コマンドリファレンス メッセージ一覧

はじめに 本書では GridDB Advanced Edition における SQL の記述方法および 注意事項について記載しています GridDB Advanced Edition をご使用になる前に 必ずお読みください なお 本書で説明する機能は GridDB Advanced Edition

(Microsoft Word - Compiere3.0Windows\203C\203\223\203X\203g\201[\203\213\203K\203C\203h.doc)

任意の間隔での FTP 画像送信イベントの設定方法 はじめに 本ドキュメントでは AXIS ネットワークカメラ / ビデオエンコーダにおいて任意の間隔で画像を FTP サー バーへ送信するイベントの設定手順を説明します 設定手順手順 1:AXIS ネットワークカメラ / ビデオエンコーダの設定ページ

2)PostgresSQL を他のパソコンからもアクセス出来るように設定する PostgreSQL をインストールしたパソコンの C:\Program Files\PostgreSQL\9.3\data\pg_hba.conf の下部で host all all /32 md5 と

SecureAssist Enterprise Portal アップグレードガイド Version 対応版 パッケージのダウンロード アップグレード全体の流れ アップグレード作業の詳細手順

Transcription:

MySQL の始め方 とみたまさひろ NSEG #49 MySQL Talk in 長野 2014-03-15

自己紹介 とみたまさひろプログラマー (Ruby & C) http://tmtms.hatenablog.com http://twitter.com/tmtms https://github.com/tmtm 日本 MySQLユーザ会代表

MySQL 徹底入門 ( の一部 )

MySQL 辞典 ( の一部 )

OSS 貢献者賞

MySQL とは

世界でもっとも普及しているオープンソースデータベース http://www-jp.mysql.com/ より

オープンソース (GPL) な RDBMS

商用版もあり MySQL Enterprise Edition by ORACLE

バージョン

バージョン X.Y.Z 最新安定版は 5.6.16 X.Y がバージョン Z はリリース毎に増加 X.Y.0 が正式リリースではない

使ってみよう

たいていの Linux には含まれてる

でもちと古い

今から始めるなら 5.6.x

公式バイナリがおすすめ

Linux Windows OS X Solaris FreeBSD

ダウンロード http://dev.mysql.com/downloads/mysql/

インストール # cd /usr/local # tar xf /tmp/mysql-5.6.16-linux-glibc2.5-i686.tar.gz # mv mysql-5.6.16-linux-glibc2.5-i686 mysql # cd mysql #./scripts/mysql_install_db # useradd -r mysql # chown -R mysql:mysql.

起動する前に

設定ファイル

my.cnf この順番に読まれてマージ ( 重複は後勝ち ) /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ( 公式バイナリ ) $MYSQL_HOME/my.cnf --defaults-extra-file で指定したもの $HOME/.my.cnf

思わぬものを読んでることも!

指定したものだけ読む --defaults-file コマンドライン引数の先頭に指定 途中に書いてもエラー

一旦起動すると後で変更するのが面倒なパラメータもあるので注意

my.cnf [mysqld] user = mysql character-set-server = utf8 log-error = /var/log/mysqld.err skip-name-resolve innodb-file-per-table sql-mode = TRADITIONAL [mysql] default-character-set = utf8 show-warnings

起動 # /usr/local/mysql/bin/mysqld & # /usr/local/mysql/bin/mysqld_safe & # /usr/local/mysql/support-files/ mysql.server start

停止 % /usr/local/mysql/bin/mysqladmin -u root shutdown # /usr/local/mysql/support-files/ mysql.server stop # kill <PID of mysqld>

kill -9 ダメ! 絶対!

MySQL はネットワークサーバー

サーバーとクライアント サーバー mysqld クライアント mysql mysqladmin mysqldump その他各種アプリ

待ち受けポート TCP/IP 3306 UNIX ソケット /tmp/mysql.sock

アクセスするためには認証が必要

ユーザー管理

OS のユーザーとは ( ほぼ ) 無関係

username@client

初期状態で root@localhost root@127.0.0.1 root@::1 root@ ホスト名

全部パスワードなし

パスワード設定 % mysql -u root [ 自分自身のパスワード ] mysql> set password = password('hogehoge'); [ 他のユーザーのパスワード ] mysql> set password for root@'127.0.0.1' = password('fugafuga'); mysql> Ctrl-D

パスワード設定後 % mysql -u root % ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) % mysql -u root -p Enter password: mysql> % mysql -u root -phogehoge (-p の後に空白不要 ) mysql>

匿名ユーザー ユーザー登録してなくてもアクセス可能 % mysql -u tommy mysql> show databases; +--------------------+ Database +--------------------+ information_schema test +--------------------+

ユーザー一覧 % mysql -u root mysql> select user,host from mysql.user; +------+-----------+ user host +------+-----------+ root 127.0.0.1 root ::1 localhost root localhost x220 root x220 +------+-----------+

mysql_secure_installation root のパスワード設定匿名ユーザーの削除リモートからの root アクセス拒否 test データベース削除

mysql_secure_installation % mysql_secure_installation... % mysql -u root mysql> select user,host from mysql.user; +------+-----------+ user host +------+-----------+ root 127.0.0.1 root ::1 root localhost +------+-----------+

不要ユーザーの削除 % mysql -u root mysql> drop user root@'127.0.0.1'; mysql> drop user root@'::1'; mysql> drop user root@ ホスト名 ; mysql> drop user ''@localhost; mysql> drop user ''@ ホスト名 ;

ユーザー作成 % mysql -u root -p mysql> create user hoge@localhost identified by ' パスワード ';

権限付与 mysql> grant 権限 on DB 名.TBL 名 to user@client;

権限 All Alter Alter routine Create Create routine Create tablespace Create temporary tables Create user Create view Delete Drop Event Execute File Grant option Index Insert Lock tables Process Proxy References Reload Replication client Replication slave Select Show databases Show view Shutdown Super Trigger Update Usage

権限 システム全体データベーステーブルカラム

たいていはこれで事足りるかも 特定の DB に対して全権付与 mysql> grant all on DB 名.* to user@client;

権限剥奪 mysql> revoke 権限 on DB 名.TBL 名 from user@client;

localhost と 127.0.0.1 は違う!

localhost と 127.0.0.1 初心者はだいたいハマる localhost は UNIX ソケット /tmp/mysql.sock mysql -u root -h localhost 127.0.0.1 は TCP/IP mysql -u root -h 127.0.0.1

日本語

文字コード

初心者は黙って utf8 (utf8mb4 でも可 )

my.cnf [mysqld] user = mysql character-set-server = utf8 log-error = /var/log/mysqld.err skip-name-resolve innodb-file-per-table sql-mode = TRADITIONAL [mysql] default-character-set = utf8 show-warnings

charset と collation

charset コードと文字との対応 ( あ = E3 81 82) utf8mb4 : 4バイトUTF-8(MySQL 5.5から ) utf8 : 3バイトUTF-8 eucjpms, cp932,...

charset mysql> show charset; +----------+-----------------------------+---------------------+--------+ Charset Description Default collation Maxlen +----------+-----------------------------+---------------------+--------+ big5 Big5 Traditional Chinese big5_chinese_ci 2 dec8 DEC West European dec8_swedish_ci 1 cp850 DOS West European cp850_general_ci 1 hp8 HP West European hp8_english_ci 1 koi8r KOI8-R Relcom Russian koi8r_general_ci 1 latin1 cp1252 West European latin1_swedish_ci 1 latin2 ISO 8859-2 Central European latin2_general_ci 1 swe7 7bit Swedish swe7_swedish_ci 1 ascii US ASCII ascii_general_ci 1 ujis EUC-JP Japanese ujis_japanese_ci 3 sjis Shift-JIS Japanese sjis_japanese_ci 2 hebrew ISO 8859-8 Hebrew hebrew_general_ci 1 tis620 TIS620 Thai tis620_thai_ci 1 latin5 ISO 8859-9 Turkish latin5_turkish_ci 1 armscii8 ARMSCII-8 Armenian armscii8_general_ci 1 utf8 UTF-8 Unicode utf8_general_ci 3 ucs2 UCS-2 Unicode ucs2_general_ci 2

collation 文字の照合規則 utf8_general_ci, utf8_bin, utf8_unicode_ci,...

collation mysql> show collation; +--------------------------+----------+-----+---------+----------+---------+ Collation Charset Id Default Compiled Sortlen +--------------------------+----------+-----+---------+----------+---------+ big5_chinese_ci big5 1 Yes Yes 1 big5_bin big5 84 Yes 1 dec8_swedish_ci dec8 3 Yes Yes 1 dec8_bin dec8 69 Yes 1 cp850_general_ci cp850 4 Yes Yes 1 cp850_bin cp850 80 Yes 1 hp8_english_ci hp8 6 Yes Yes 1 hp8_bin hp8 72 Yes 1 koi8r_general_ci koi8r 7 Yes Yes 1 koi8r_bin koi8r 74 Yes 1 latin1_german1_ci latin1 5 Yes 1 latin1_swedish_ci latin1 8 Yes Yes 1 utf8_general_ci utf8 33 Yes Yes 1 utf8_bin utf8 83 Yes 1 utf8_unicode_ci utf8 192 Yes 8 utf8_icelandic_ci utf8 193 Yes 8 utf8_latvian_ci utf8 194 Yes 8 utf8_romanian_ci utf8 195 Yes 8

utf8_general_ci charset utf8 のデフォルトの collation ASCII/ ラテン文字の大文字小文字を区別しない A = a

utf8_bin char(n) binary として宣言した時の collation すべての文字を区別する A!= a

utf8_unicode_ci Unicode Collation Algorithm (UCA) による collation 大文字 / 小文字 / 全角 / 半角 / カタカナ / ひらがな / 濁音を区別しない a=a=a( 全角 ) は = ば = ぱ = ハ = バ = パ = ハ http://tmtm.org/tmp/mysql_unicode_collation.html

文字コードが関係するもの クライアント接続データベーステーブルカラム

同じテーブルのカラム毎に異なる文字コードを指定可能

クライアント - サーバー間で自動変換

ハマりたくなかったら utf8 に統一 (utf8mb4 でも可 )

ストレージエンジン

データをディスク ( か何か ) に保存 & 取り出すレイヤ

SQL のことなんて ( あんまり ) 知らない

InnoDB / MyISAM / CSV / BLACKHOLE / MEMORY / MRG_MYISAM / ARCHIVE

InnoDB / MyISAM / CSV / BLACKHOLE / MEMORY / MRG_MYISAM / ARCHIVE

異なるストレージエンジン間で JOIN / Sub SELECT も可

MyISAM 以前のデフォルトのストレージエンジンシステムテーブル (mysql.*) で使用トランザクション 外部キー未対応テーブルロック全文検索 ( 日本語不可 ) 位置情報

InnoDB デフォルトのストレージエンジントランザクションレコードロック全文検索 ( 日本語不可 ) (5.6 から ) 位置情報 (5.0 から )

初心者は黙って InnoDB

mroonga コミュニティ版ストレージエンジン高速日本語全文検索 groonga 位置情報 mroonga = groonga ストレージエンジン毎月肉の日 (29 日 ) リリース

sql_mode

MySQL 特有の変な挙動を変更

MySQL 特有の挙動 カラム長を超えてもエラーにならない 不正な文字があってもエラーにならない 指定されたストレージエンジンがないと代替を使う 日付 0000-00-00, 2014-00-01, 2014-04-31

MySQL 特有の挙動 GROUP BY に指定されてないカラムを SELECT, HAVING できる " " が文字列リテラル が論理和 等々

sql_mode グローバル : my.cnf で指定 グローバル : set global sql_mode = XXXX; セッション : set sql_mode = XXXX; http://dev.mysql.com/doc/refman/5.6/en/sql-mode.html

まとめ 設定ファイルに注意初期状態のアクセス権は危険文字コードは utf8 or utf8mb4 ストレージエンジンは InnoDB MySQL 特有の挙動に気をつける