SlideShare ist ein Scribd-Unternehmen logo
1 von 39
これからデータベースMySQLを
始める人のために
2017/05/27
日本MySQLユーザ会
坂井 恵
オープンソースカンファレンス2017-Nyagoya
【入門】【飲食可】
このセッションは
• ランチタイムセッションです
• お持ちのおひるごはん(お餅以外も含む)を
食べながら気楽にお聞きください
• ただし、においの強いものは、うらやましくなり
ます
このセッションは
• 『これからデータベースMySQLを始める人の
ために』という、入門向けセッションです
• 時間に余裕があれば、MySQL最新情報や、
MySQLの小ネタなどを紹介します
MySQLを学ぶとは
• 試す
• 試す
• 試す
• 考える
• 試す
• 試す
• 調べる
• 試す
• 試す
• 試す
• 試す
• 調べる
• 考える
• 試す
MySQL習得のために必要なこと
MySQLを学ぶとは
• とにかく試す!試す!試す
(MySQLに限らず、多くの技術習得に言えること)
• なぜ試さない?
– なんとなく億劫
– 試す環境を作るのがたいへん
「試す環境を作るのがたいへん」
なら、まず、
たいへんじゃなくなる
力を手に入れることに
力を割きましょう
極意:
つまりインストールを極める!
今日のキーワードです
× 「知り尽くす」
○ 「あなた自身が、もっともラクできる
インストール方法を見つける」
おすすめ学習ステップ
1. とにかく一番ラクな方法でインストール
2. そこそこ満足するまで気ままにいじり倒す
3. アンインストールする
4. 何種類かのインストール方法を試して、自分
なりのインストール/アンインストールテク
ニックを手に入れる
5. 気ままにいじり倒す
6. 気ままにいじり倒す
7. 気ままにいじり倒す
MySQLのインストール方法あれこれ
① Windows の “MySQL Installer”
Windows のインストーラー (msi)
②MacOSのパッケージ(dmg)
③Linux 系のリポジトリ(yum, apt など)
④Linux 系のパッケージ(rpm, debなど)
⑤バイナリを配置
ダウンロード
MySQLダウンロードページ
GAバージョンと開発バージョン
ダウンロード:OSの選択
最初のインストール
• もっとも楽な方法でさくっと入れよう
Windows: MySQL Installer
MacOS: dmg
Linux系: リポジトリから
簡単インストール:Linuxリポジトリ
(MySQLダウンロードページ)
極めるインストール
ぜひバイナリで!
理解が深まる
活用の幅が広がる
一台の上に複数のMySQLとか
※正しく理解すれば、難しくはありません!
バイナリでのインストール
MySQL動作のしくみ
• 接続や指示を待ち受けているプログラムがあ
る(サーバー)
• そこに接続に行くクライアントがあるだけ。
mysqld
(プログラム)
TCP Port 3306
Socket file
クライアント
Mysqlクライアント
MySQL動作のしくみ
• 接続や指示を待ち受けているプログラムがあ
る(サーバー)
• そこに接続に行くクライアントがあるだけ。
mysqld
(プログラム)
TCP Port 3306
Socket file
MySQL動作のしくみ
• 接続や指示を待ち受けているプログラムがあ
る(サーバー)
• そこに接続に行くクライアントがあるだけ。
mysqld
(プログラム)
TCP Port 3306
Socket file
開発プログラム
クライアント
ライブラリ
(接続ライブラリ)
MySQLのインストール:バイナリを配置
■考え方
• バイナリの入ったアーカイブを落としてきて
• mysqld を 起動する
• mysql クライアントコマンドで接続する
MySQLのインストール:バイナリを配置
■考え方
• バイナリの入ったアーカイブを落としてきて
• mysqld を 起動する
• mysql クライアントコマンドで接続する
mysqlが動作する環境を整えて
ファイルを展開して
必要なパラメタを指定して起動
必要なパラメタを指定して接続
毎回の起動のたびに「必要なパラメタ」を全部指定するのは面倒なので、
my.cnf という設定ファイルに記述しておくとラク。
最初にデータファイルの初期化
MySQLのバイナリでのインストール
Linux(AWSのRed Hat)の例
• 使用できるLinux環境(ここではAWS上のRed
Hat)を用意する。
• 競合するソフトウェア(MariDB)が入っているの
で除去する
• 必要なライブラリをインストールする
①動作環境の用意
$ sudo yum remove mariadb-libs
$ sudo yum install wget libaio-devel
MySQLのバイナリでのインストール
Linux(AWSのRed Hat)の例
• MySQLのダウンロードページから、適切なファ
イルをダウンロードし、展開する
見るポイント
 OS
 32bit か 64bit か
 ファイルのタイプ(拡張子など): パッケージシステムのファイルでないもの
②バイナリの入ったアーカイブを落としてきて
$ wget https://dev.mysql.com/get/Downloads/MySQL-
5.7/mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz
$ tar xvf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz
$ mv mysql-5.7.18-linux-glibc2.5-x86_64 mysql5718
MySQLのバイナリでのインストール
Linux(AWSのRed Hat)の例
mysqld(サーバ)起動時に、動作内容を指示す
るためのパラメタを指定する
 接続待ちするポート
 接続に使用するソケットファイル(Linuxのローカル接
続ではこれを使う)
 標準で使用する文字コード
 各種ファイル配置のパス
③mysqldを起動・・・・の前に、パラメタについて
$ bin/mysqld --port=3306 --socket=/tmp/mysql5718.sock --character-
set-server=utf8mb4 --datadir=/home/my/mysql/mysql5718/data …
毎回の起動のたびに「必
要なパラメタ」を全部指定
するのは面倒なので、
my.cnf という設定ファイル
に記述しておくとラク。
MySQLのバイナリでのインストール
Linux(AWSのRed Hat)の例
my.cnf記述例
③mysqldを起動:のために my.cnfを記述
[mysqld]
log-error=/home/ec2-user/mysql/mysql5718/my.err
basedir = /home/ec2-user/mysql/mysql5718
datadir = /home/ec2-user/mysql/mysql5718/data
port=15718
socket=/tmp/mysql5718.sock
character-set-server=utf8mb4
[mysqladmin]
socket=/tmp/mysql5718.sock
[mysql]
port=15718
socket=/tmp/mysql5718.sock
default-character-set=utf8mb4
MySQLのバイナリでのインストール
Linux(AWSのRed Hat)の例
• mysqldを “--initialize” オプションをつけて実行
すると、データファイル群が作成される
• ついでに ssl の初期化もしておくと吉
③-2 データファイルの初期化
$ bin/mysqld --defaults-file=./my.cnf --initialize
$ bin/mysql_ssl_rsa_setup --defaults-file=./my.cnf
MySQLのバイナリでのインストール
Linux(AWSのRed Hat)の例
• mysqld_safe を使って mysqldサーバを起動
(作成したmy.cnf が、カレントフォルダに存在する前提)
③-3 mysqldサーバ起動
$ bin/mysqld_safe &
MySQLのバイナリでのインストール
Linux(AWSのRed Hat)の例
作成した my.cnf ファイルを指定して、mysql クラ
イアントコマンドを実行
④ mysqlクライアントから接続と最初の設定
$ ./bin/mysql --defaults-file=./my.cnf -uroot -p
initializeの時に、初期パスワードが my.err に書き込まれるので
あらかじめ確認しておく
2017-05-24T05:07:08.020775Z 4 [Note] A temporary password is generated for
root@localhost: rtrqCApwZ8?k
MySQLのバイナリでのインストール
Linux(AWSのRed Hat)の例
• インストール直後に作成されているユーザの「初期パスワー
ド」を変更する必要がある
• 変更するまで、なんの操作もできない
• 変更には ALTER USER 文を使用する
④-2 パスワード設定
mysql> ALTER USER root@localhost IDENTIFIED BY 'mypass';
#!/usr/bin/bash
MVER=1
sudo yum -y install wget libaio-devel
sudo yum -y remove mariadb-libs
cd ~
wget http://ftp.iij.ad.jp/pub/db/mysql/Downloads/MySQL-8.0/mysql-
8.0.${MVER}-dmr-linux-glibc2.12-x86_64.tar.gz
mkdir -p mysql/
cd mysql
tar xvf ../mysql-8.0.${MVER}-dmr-linux-glibc2.12-x86_64.tar.gz
mv mysql-8.0.${MVER}-dmr-linux-glibc2.12-x86_64 mysql80${MVER}
cd mysql80${MVER}
#echo ------------------------------------
#echo Please push ENTER key to continue.
#read
cat <<EOF > my.cnf
[mysqld]
log-error=/home/ec2-user/mysql/mysql80${MVER}/my.err
basedir = /home/ec2-user/mysql/mysql80${MVER}
datadir = /home/ec2-user/mysql/mysql80${MVER}/data
port=180${MVER}
socket=/tmp/mysql80${MVER}.sock
character-set-server=utf8mb4
[mysqladmin]
socket=/tmp/mysql80${MVER}.sock
[mysql]
port=180${MVER}
socket=/tmp/mysql80${MVER}.sock
default-character-set=utf8mb4
EOF
bin/mysqld --defaults-file=./my.cnf --initialize
bin/mysql_ssl_rsa_setup --defaults-file=./my.cnf
bin/mysqld_safe &
sleep 3
grep 'temporary password' my.err
echo To connect: ./bin/mysql --defaults-file=./my.cnf -uroot -p
echo Change password: ALTER USER root@localhost IDENTIFIED BY
'mypass';
MySQLのバイナリでのインストール
Linux(AWSのRed Hat)の例
おまけ: MySQL 8.0.1 オレオレセットアップスクリプトの例
極意(再掲)
つまりインストールを極める!
今日のキーワードです
× 「知り尽くす」
○ 「あなた自身が、もっともラクできる
インストール方法を見つける」
インストールと
アンインストールを
自在に操って、
どんどんMySQLを
試しちゃいましょう!
- Fin -
展示ブースのご案内

Weitere ähnliche Inhalte

Mehr von sakaik

MySQL8.0.22リリースノートをみてわいわい言う勉強会
MySQL8.0.22リリースノートをみてわいわい言う勉強会 MySQL8.0.22リリースノートをみてわいわい言う勉強会
MySQL8.0.22リリースノートをみてわいわい言う勉強会 sakaik
 
イベントドリブンMySQL~日本MySQLユーザ会の20年~
イベントドリブンMySQL~日本MySQLユーザ会の20年~イベントドリブンMySQL~日本MySQLユーザ会の20年~
イベントドリブンMySQL~日本MySQLユーザ会の20年~sakaik
 
MySQL徹底入門第4版出版記念 全体説明と自分のパート
MySQL徹底入門第4版出版記念 全体説明と自分のパートMySQL徹底入門第4版出版記念 全体説明と自分のパート
MySQL徹底入門第4版出版記念 全体説明と自分のパートsakaik
 
MySQL8.0.20リリースノートをみてわいわい言う勉強会
MySQL8.0.20リリースノートをみてわいわい言う勉強会MySQL8.0.20リリースノートをみてわいわい言う勉強会
MySQL8.0.20リリースノートをみてわいわい言う勉強会sakaik
 
MySQLと空間データ(GIS)
MySQLと空間データ(GIS)MySQLと空間データ(GIS)
MySQLと空間データ(GIS)sakaik
 
令和元年のMySQL元年的話題~ニフクラミートアップ
令和元年のMySQL元年的話題~ニフクラミートアップ令和元年のMySQL元年的話題~ニフクラミートアップ
令和元年のMySQL元年的話題~ニフクラミートアップsakaik
 
MySQLで扱う空間情報のきほん~MySQL Cafe #6
MySQLで扱う空間情報のきほん~MySQL Cafe #6MySQLで扱う空間情報のきほん~MySQL Cafe #6
MySQLで扱う空間情報のきほん~MySQL Cafe #6sakaik
 
LOVE三角点~FOSS4G Niigata(2019) ライトニングトーク
LOVE三角点~FOSS4G Niigata(2019) ライトニングトークLOVE三角点~FOSS4G Niigata(2019) ライトニングトーク
LOVE三角点~FOSS4G Niigata(2019) ライトニングトークsakaik
 
札幌の人に知ってもらいたい三角点の話~FOSS4G2019 Hokkaido LT
札幌の人に知ってもらいたい三角点の話~FOSS4G2019 Hokkaido LT札幌の人に知ってもらいたい三角点の話~FOSS4G2019 Hokkaido LT
札幌の人に知ってもらいたい三角点の話~FOSS4G2019 Hokkaido LTsakaik
 
GTFS勉強会#1 DB屋が見たGTFS-JP ファースト・インプレッション
GTFS勉強会#1 DB屋が見たGTFS-JP ファースト・インプレッションGTFS勉強会#1 DB屋が見たGTFS-JP ファースト・インプレッション
GTFS勉強会#1 DB屋が見たGTFS-JP ファースト・インプレッションsakaik
 
OSC2019-Hamanko LT 浜松の[三角点の]紹介
OSC2019-Hamanko LT 浜松の[三角点の]紹介OSC2019-Hamanko LT 浜松の[三角点の]紹介
OSC2019-Hamanko LT 浜松の[三角点の]紹介sakaik
 
MySQLとGISと私・この1年~MySQL Innovation Day LT
MySQLとGISと私・この1年~MySQL Innovation Day LTMySQLとGISと私・この1年~MySQL Innovation Day LT
MySQLとGISと私・この1年~MySQL Innovation Day LTsakaik
 
MySQL 8.0 にGIS機能がやってきた~ライトニングトーク~
MySQL 8.0 にGIS機能がやってきた~ライトニングトーク~MySQL 8.0 にGIS機能がやってきた~ライトニングトーク~
MySQL 8.0 にGIS機能がやってきた~ライトニングトーク~sakaik
 
MySQL 8.0 で強化されたGIS機能のご紹介 @ FOSS4G Okayama
MySQL 8.0 で強化されたGIS機能のご紹介 @ FOSS4G Okayama MySQL 8.0 で強化されたGIS機能のご紹介 @ FOSS4G Okayama
MySQL 8.0 で強化されたGIS機能のご紹介 @ FOSS4G Okayama sakaik
 
MySQL8.0の「地理情報」を理解しよう入門~いまからはじめるGIS
MySQL8.0の「地理情報」を理解しよう入門~いまからはじめるGISMySQL8.0の「地理情報」を理解しよう入門~いまからはじめるGIS
MySQL8.0の「地理情報」を理解しよう入門~いまからはじめるGISsakaik
 
2018夏ClubDb2呑み会@ノムノ~ClubMySQLの紹介とか~
2018夏ClubDb2呑み会@ノムノ~ClubMySQLの紹介とか~2018夏ClubDb2呑み会@ノムノ~ClubMySQLの紹介とか~
2018夏ClubDb2呑み会@ノムノ~ClubMySQLの紹介とか~sakaik
 
周辺知識から理解するMySQL の GIS機能 ~ClubMySQL #4
周辺知識から理解するMySQL の GIS機能 ~ClubMySQL #4周辺知識から理解するMySQL の GIS機能 ~ClubMySQL #4
周辺知識から理解するMySQL の GIS機能 ~ClubMySQL #4sakaik
 
MySQLのGIS機能とか超入門 ~MyNA会2018年7月
MySQLのGIS機能とか超入門 ~MyNA会2018年7月MySQLのGIS機能とか超入門 ~MyNA会2018年7月
MySQLのGIS機能とか超入門 ~MyNA会2018年7月sakaik
 
追加参考資料:MySQLにGIS機能がやってきた@OSC2018北海道
追加参考資料:MySQLにGIS機能がやってきた@OSC2018北海道追加参考資料:MySQLにGIS機能がやってきた@OSC2018北海道
追加参考資料:MySQLにGIS機能がやってきた@OSC2018北海道sakaik
 
MySQLに本格GIS機能がやってきた~MySQL8.0最新情報~@OSC2018北海道
MySQLに本格GIS機能がやってきた~MySQL8.0最新情報~@OSC2018北海道MySQLに本格GIS機能がやってきた~MySQL8.0最新情報~@OSC2018北海道
MySQLに本格GIS機能がやってきた~MySQL8.0最新情報~@OSC2018北海道sakaik
 

Mehr von sakaik (20)

MySQL8.0.22リリースノートをみてわいわい言う勉強会
MySQL8.0.22リリースノートをみてわいわい言う勉強会 MySQL8.0.22リリースノートをみてわいわい言う勉強会
MySQL8.0.22リリースノートをみてわいわい言う勉強会
 
イベントドリブンMySQL~日本MySQLユーザ会の20年~
イベントドリブンMySQL~日本MySQLユーザ会の20年~イベントドリブンMySQL~日本MySQLユーザ会の20年~
イベントドリブンMySQL~日本MySQLユーザ会の20年~
 
MySQL徹底入門第4版出版記念 全体説明と自分のパート
MySQL徹底入門第4版出版記念 全体説明と自分のパートMySQL徹底入門第4版出版記念 全体説明と自分のパート
MySQL徹底入門第4版出版記念 全体説明と自分のパート
 
MySQL8.0.20リリースノートをみてわいわい言う勉強会
MySQL8.0.20リリースノートをみてわいわい言う勉強会MySQL8.0.20リリースノートをみてわいわい言う勉強会
MySQL8.0.20リリースノートをみてわいわい言う勉強会
 
MySQLと空間データ(GIS)
MySQLと空間データ(GIS)MySQLと空間データ(GIS)
MySQLと空間データ(GIS)
 
令和元年のMySQL元年的話題~ニフクラミートアップ
令和元年のMySQL元年的話題~ニフクラミートアップ令和元年のMySQL元年的話題~ニフクラミートアップ
令和元年のMySQL元年的話題~ニフクラミートアップ
 
MySQLで扱う空間情報のきほん~MySQL Cafe #6
MySQLで扱う空間情報のきほん~MySQL Cafe #6MySQLで扱う空間情報のきほん~MySQL Cafe #6
MySQLで扱う空間情報のきほん~MySQL Cafe #6
 
LOVE三角点~FOSS4G Niigata(2019) ライトニングトーク
LOVE三角点~FOSS4G Niigata(2019) ライトニングトークLOVE三角点~FOSS4G Niigata(2019) ライトニングトーク
LOVE三角点~FOSS4G Niigata(2019) ライトニングトーク
 
札幌の人に知ってもらいたい三角点の話~FOSS4G2019 Hokkaido LT
札幌の人に知ってもらいたい三角点の話~FOSS4G2019 Hokkaido LT札幌の人に知ってもらいたい三角点の話~FOSS4G2019 Hokkaido LT
札幌の人に知ってもらいたい三角点の話~FOSS4G2019 Hokkaido LT
 
GTFS勉強会#1 DB屋が見たGTFS-JP ファースト・インプレッション
GTFS勉強会#1 DB屋が見たGTFS-JP ファースト・インプレッションGTFS勉強会#1 DB屋が見たGTFS-JP ファースト・インプレッション
GTFS勉強会#1 DB屋が見たGTFS-JP ファースト・インプレッション
 
OSC2019-Hamanko LT 浜松の[三角点の]紹介
OSC2019-Hamanko LT 浜松の[三角点の]紹介OSC2019-Hamanko LT 浜松の[三角点の]紹介
OSC2019-Hamanko LT 浜松の[三角点の]紹介
 
MySQLとGISと私・この1年~MySQL Innovation Day LT
MySQLとGISと私・この1年~MySQL Innovation Day LTMySQLとGISと私・この1年~MySQL Innovation Day LT
MySQLとGISと私・この1年~MySQL Innovation Day LT
 
MySQL 8.0 にGIS機能がやってきた~ライトニングトーク~
MySQL 8.0 にGIS機能がやってきた~ライトニングトーク~MySQL 8.0 にGIS機能がやってきた~ライトニングトーク~
MySQL 8.0 にGIS機能がやってきた~ライトニングトーク~
 
MySQL 8.0 で強化されたGIS機能のご紹介 @ FOSS4G Okayama
MySQL 8.0 で強化されたGIS機能のご紹介 @ FOSS4G Okayama MySQL 8.0 で強化されたGIS機能のご紹介 @ FOSS4G Okayama
MySQL 8.0 で強化されたGIS機能のご紹介 @ FOSS4G Okayama
 
MySQL8.0の「地理情報」を理解しよう入門~いまからはじめるGIS
MySQL8.0の「地理情報」を理解しよう入門~いまからはじめるGISMySQL8.0の「地理情報」を理解しよう入門~いまからはじめるGIS
MySQL8.0の「地理情報」を理解しよう入門~いまからはじめるGIS
 
2018夏ClubDb2呑み会@ノムノ~ClubMySQLの紹介とか~
2018夏ClubDb2呑み会@ノムノ~ClubMySQLの紹介とか~2018夏ClubDb2呑み会@ノムノ~ClubMySQLの紹介とか~
2018夏ClubDb2呑み会@ノムノ~ClubMySQLの紹介とか~
 
周辺知識から理解するMySQL の GIS機能 ~ClubMySQL #4
周辺知識から理解するMySQL の GIS機能 ~ClubMySQL #4周辺知識から理解するMySQL の GIS機能 ~ClubMySQL #4
周辺知識から理解するMySQL の GIS機能 ~ClubMySQL #4
 
MySQLのGIS機能とか超入門 ~MyNA会2018年7月
MySQLのGIS機能とか超入門 ~MyNA会2018年7月MySQLのGIS機能とか超入門 ~MyNA会2018年7月
MySQLのGIS機能とか超入門 ~MyNA会2018年7月
 
追加参考資料:MySQLにGIS機能がやってきた@OSC2018北海道
追加参考資料:MySQLにGIS機能がやってきた@OSC2018北海道追加参考資料:MySQLにGIS機能がやってきた@OSC2018北海道
追加参考資料:MySQLにGIS機能がやってきた@OSC2018北海道
 
MySQLに本格GIS機能がやってきた~MySQL8.0最新情報~@OSC2018北海道
MySQLに本格GIS機能がやってきた~MySQL8.0最新情報~@OSC2018北海道MySQLに本格GIS機能がやってきた~MySQL8.0最新情報~@OSC2018北海道
MySQLに本格GIS機能がやってきた~MySQL8.0最新情報~@OSC2018北海道
 

OSC2017 Nagoya これからデータベースmysqlを始める人のため