UJP - 技術情報2 : Raspberry Pi RaspbianにMySQLをインストールしてセットアップする RapsberryPi3/006/MySQLinstallAndSetup

Life is fun and easy!

不正IP報告数

Okan Sensor
 
メイン
ログイン
ブログ カテゴリ一覧

Page Top

はじめに anchor.png

 MySQLをインストールして,MySQlの起動と終了,そして言語設定を行う.簡単に行うためにapt-getでインストールを行うが,パッケージもたくさんあるので,幾つか選択してみる.

Page Top

パッケージ一覧の確認 anchor.png

 apt-cacheコマンドでmysql関連パッケージを表示できる.

ujpadmin@commet:~ $ apt-cache search mysql|more

 とても多い.

ujpadmin@commet:~ $ apt-cache search mysql|wc -l
385
ujpadmin@commet:~ $

 いくつかピックアップしてみる.

 MySQLの5.5を指定する場合.このバージョンは現時点の安定板になるのかな.現時点で5.7が最新.

mysql-server-5.5 - MySQL database server binaries and system database setup
mysql-server-core-5.5 - MySQL database server binaries
mysql-client-5.5 - MySQL database client binaries

 最新のMySQLにする場合.

mysql-server - MySQL database server (metapackage depending on the latest version)

 これは必要だと思われ.

mysql-common - MySQL database common files, e.g. /etc/mysql/my.cnf

 各種言語からの接続で必要そうなクライアントライブラリ.

libmysql-java - Java database (JDBC) driver for MySQL
libmysql6.4-cil - MySQL database connector for CLI
libmysqlclient-dev - MySQL database development files
libmysqlclient18 - MySQL database client library

 便利そうなツール.

mydumper - High-performance MySQL backup tool
mytop - top like query monitor for MySQL
Page Top

apt-get install mysql-serverでインストール anchor.png

 まずは,最新版を入れたいので,mysql-serverを指定する.

ujpadmin@commet:~ $ sudo apt-get install mysql-server
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
  libaio1 libdbd-mysql-perl libdbi-perl libhtml-template-perl libmysqlclient18 libterm-readkey-perl
  mysql-client-5.5 mysql-common mysql-server-5.5 mysql-server-core-5.5
提案パッケージ:
  libclone-perl libmldbm-perl libnet-daemon-perl libsql-statement-perl libipc-sharedcache-perl mailx
  tinyca
以下のパッケージが新たにインストールされます:
  libaio1 libdbd-mysql-perl libdbi-perl libhtml-template-perl libmysqlclient18 libterm-readkey-perl
  mysql-client-5.5 mysql-common mysql-server mysql-server-5.5 mysql-server-core-5.5
アップグレード: 0 個、新規インストール: 11 個、削除: 0 個、保留: 47 個。
8,121 kB のアーカイブを取得する必要があります。
この操作後に追加で 88.8 MB のディスク容量が消費されます。
続行しますか? [Y/n]

 MySQL5.5がインストールされる模様.このまま進める.

続行しますか? [Y/n] y
取得:1 http://mirrordirector.raspbian.org/raspbian/ jessie/main libaio1 armhf 0.3.110-1 [9,228 B]
取得:2 http://mirrordirector.raspbian.org/raspbian/ jessie/main mysql-common all 5.5.44-0+deb8u1 [74.3 kB]
取得:3 http://mirrordirector.raspbian.org/raspbian/ jessie/main libmysqlclient18 armhf 5.5.44-0+deb8u1 [616 kB]
取得:4 http://mirrordirector.raspbian.org/raspbian/ jessie/main libdbi-perl armhf 1.631-3+b1 [807 kB]
取得:5 http://mirrordirector.raspbian.org/raspbian/ jessie/main libdbd-mysql-perl armhf 4.028-2+b1 [112 kB]
取得:6 http://mirrordirector.raspbian.org/raspbian/ jessie/main libterm-readkey-perl armhf 2.32-1+b2 [26.1 kB]
取得:7 http://mirrordirector.raspbian.org/raspbian/ jessie/main mysql-client-5.5 armhf 5.5.44-0+deb8u1 [1,442 kB]
取得:8 http://mirrordirector.raspbian.org/raspbian/ jessie/main mysql-server-core-5.5 armhf 5.5.44-0+deb8u1 [3,309 kB]
取得:9 http://mirrordirector.raspbian.org/raspbian/ jessie/main mysql-server-5.5 armhf 5.5.44-0+deb8u1 [1,586 kB]
取得:10 http://mirrordirector.raspbian.org/raspbian/ jessie/main libhtml-template-perl all 2.95-1 [66.8 kB]
取得:11 http://mirrordirector.raspbian.org/raspbian/ jessie/main mysql-server all 5.5.44-0+deb8u1 [72.6 kB]
8,121 kB を 12秒 で取得しました (638 kB/s)
パッケージを事前設定しています ...
以前に未選択のパッケージ libaio1:armhf を選択しています。
(データベースを読み込んでいます ... 現在 119132 個のファイルとディレクトリがインストールされています。)
.../libaio1_0.3.110-1_armhf.deb を展開する準備をしています ...
libaio1:armhf (0.3.110-1) を展開しています...
以前に未選択のパッケージ mysql-common を選択しています。
.../mysql-common_5.5.44-0+deb8u1_all.deb を展開する準備をしています ...
mysql-common (5.5.44-0+deb8u1) を展開しています...
以前に未選択のパッケージ libmysqlclient18:armhf を選択しています。
.../libmysqlclient18_5.5.44-0+deb8u1_armhf.deb を展開する準備をしています ...
libmysqlclient18:armhf (5.5.44-0+deb8u1) を展開しています...
以前に未選択のパッケージ libdbi-perl を選択しています。
.../libdbi-perl_1.631-3+b1_armhf.deb を展開する準備をしています ...
libdbi-perl (1.631-3+b1) を展開しています...
以前に未選択のパッケージ libdbd-mysql-perl を選択しています。
.../libdbd-mysql-perl_4.028-2+b1_armhf.deb を展開する準備をしています ...
libdbd-mysql-perl (4.028-2+b1) を展開しています...
以前に未選択のパッケージ libterm-readkey-perl を選択しています。
.../libterm-readkey-perl_2.32-1+b2_armhf.deb を展開する準備をしています ...
libterm-readkey-perl (2.32-1+b2) を展開しています...
以前に未選択のパッケージ mysql-client-5.5 を選択しています。
.../mysql-client-5.5_5.5.44-0+deb8u1_armhf.deb を展開する準備をしています ...
mysql-client-5.5 (5.5.44-0+deb8u1) を展開しています...
以前に未選択のパッケージ mysql-server-core-5.5 を選択しています。
.../mysql-server-core-5.5_5.5.44-0+deb8u1_armhf.deb を展開する準備をしています ...
mysql-server-core-5.5 (5.5.44-0+deb8u1) を展開しています...
man-db (2.7.0.2-5) のトリガを処理しています ...
mysql-common (5.5.44-0+deb8u1) を設定しています ...
以前に未選択のパッケージ mysql-server-5.5 を選択しています。
(データベースを読み込んでいます ... 現在 119497 個のファイルとディレクトリがインストールされています。)
.../mysql-server-5.5_5.5.44-0+deb8u1_armhf.deb を展開する準備をしています ...
mysql-server-5.5 (5.5.44-0+deb8u1) を展開しています...
以前に未選択のパッケージ libhtml-template-perl を選択しています。
.../libhtml-template-perl_2.95-1_all.deb を展開する準備をしています ...
libhtml-template-perl (2.95-1) を展開しています...
以前に未選択のパッケージ mysql-server を選択しています。
.../mysql-server_5.5.44-0+deb8u1_all.deb を展開する準備をしています ...
mysql-server (5.5.44-0+deb8u1) を展開しています...
man-db (2.7.0.2-5) のトリガを処理しています ...
systemd (215-17+deb8u4) のトリガを処理しています ...
libaio1:armhf (0.3.110-1) を設定しています ...
libmysqlclient18:armhf (5.5.44-0+deb8u1) を設定しています ...
libdbi-perl (1.631-3+b1) を設定しています ...
libdbd-mysql-perl (4.028-2+b1) を設定しています ...
libterm-readkey-perl (2.32-1+b2) を設定しています ...
mysql-client-5.5 (5.5.44-0+deb8u1) を設定しています ...
mysql-server-core-5.5 (5.5.44-0+deb8u1) を設定しています ...
mysql-server-5.5 (5.5.44-0+deb8u1) を設定しています ...
libhtml-template-perl (2.95-1) を設定しています ...
mysql-server (5.5.44-0+deb8u1) を設定しています ...
libc-bin (2.19-18+deb8u4) のトリガを処理しています ...
systemd (215-17+deb8u4) のトリガを処理しています ...
ujpadmin@commet:~ $

 systemdというinitデーモンが気になる...

 途中,3回ほどMySQLのrootユーザのパスワードを設定しろと次の様な画面が出てくる.

index.php?page=view&file=3601&mysqlRootPassword.jpg

 今回な何も設定していない.設定してないから何度も出てくるのだろうと思う.

Page Top

MySQLのプロセスを確認 anchor.png

 インストールが終わった途端に,MySQLが起動しているはずなのでプロセスを確認.

ujpadmin@commet:~ $ ps -ef|grep mysqld
root     16243     1  0 12:48 ?        00:00:00 /bin/sh /usr/bin/mysqld_safe
mysql    16591 16243  0 12:48 ?        00:00:04 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql
 --plugin-dir=/usr/lib/mysql/plugin --user=mysql --log-error=/var/log/mysql/error.log --pid-
file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306
ujpadmin 17775   782  0 13:52 pts/0    00:00:00 grep --color=auto mysqld
ujpadmin@commet:~ $

 3306ポートで接続できる様に起動している模様.

Page Top

MySQLモニターで接続 anchor.png

ujpadmin@commet:~ $ which mysql
/usr/bin/mysql
ujpadmin@commet:~ $ mysql -uroot
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 43
Server version: 5.5.44-0+deb8u1 (Raspbian)
Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>

 接続できました.接続を切ります.

mysql> quit
Bye
ujpadmin@commet:~ $

 正常に切断.

Page Top

MySQLの停止と起動 anchor.png

 init.dに登録してあるスクリプトで停止する.

ujpadmin@commet:~ $ /etc/init.d/mysql stop
[....] Stopping mysql (via systemctl): mysql.serviceFailed to stop mysql.service:
 Access denied failed!
ujpadmin@commet:~ $

 権限がなくて起動できない.sudoで停止してプロセスが無いことを確認する.

ujpadmin@commet:~ $ sudo /etc/init.d/mysql stop
[ ok ] Stopping mysql (via systemctl): mysql.service.
ujpadmin@commet:~ $ ps -ef|grep mysql
ujpadmin 18849   782  0 14:06 pts/0    00:00:00 grep --color=auto mysql
ujpadmin@commet:~ $

 正常に停止できた.  次に起動する. ujpadmin@commet:~ $ sudo /etc/init.d/mysql stop [ ok ] Stopping mysql (via systemctl): mysql.service. ujpadmin@commet:~ $ sudo /etc/init.d/mysql start [ ok ] Starting mysql (via systemctl): mysql.service. ujpadmin@commet:~ $

Page Top

文字コードを設定する anchor.png

 MySQLに接続して現在の文字コードを確認.

ujpadmin@commet:~ $ mysql -uroot --silent
mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
mysql>

 databaseがlatin1になっているので,これを日本語に変更する.日本語に変更するには,my.cnfファイルを変更する.

mysql> quit
ujpadmin@commet:~ $ sudo vi /etc/mysql/my.cnf

 [mysqld]セクションに言語設定を追加する.

[mysqld]
character-set-server=utf8
#
# * Basic Settings
#
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp

 設定を反映させるために,MySQLを再起動する

ujpadmin@commet:~ $ sudo /etc/init.d/mysql restart
[ ok ] Restarting mysql (via systemctl): mysql.service.
ujpadmin@commet:~ $

 再起動したら,言語設定が変更されているか確認.

ujpadmin@commet:~ $ mysql -uroot --silent
mysql>
mysql> show variables like 'character_set_database';
Variable_name	Value
character_set_database	utf8
mysql>

 設定が反映された事が確認できた.

Page Top

mytop anchor.png

 Windowsのタスクマネージャ,MacOS Xのアクティビティモニターのような感じで,負荷の高いプロセス一覧を見るtopコマンドというものがあるが,それのMySQL版.これをインストールして使ってみる.

Page Top

mytopをインストール anchor.png

ujpadmin@commet:~ $ sudo apt-get install mytop
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
  libconfig-inifiles-perl liblist-moreutils-perl
以下のパッケージが新たにインストールされます:
  libconfig-inifiles-perl liblist-moreutils-perl mytop
アップグレード: 0 個、新規インストール: 3 個、削除: 0 個、保留: 47 個。
130 kB のアーカイブを取得する必要があります。
この操作後に追加で 357 kB のディスク容量が消費されます。
続行しますか? [Y/n] y
取得:1 http://mirrordirector.raspbian.org/raspbian/ jessie/main liblist-moreutils-perl armhf 0.33-2+b1 [40.9 kB]
取得:2 http://mirrordirector.raspbian.org/raspbian/ jessie/main libconfig-inifiles-perl all 2.83-3 [54.0 kB]
取得:3 http://mirrordirector.raspbian.org/raspbian/ jessie/main mytop all 1.9.1-2 [35.3 kB]
130 kB を 2秒 で取得しました (63.7 kB/s)
以前に未選択のパッケージ liblist-moreutils-perl を選択しています。
(データベースを読み込んでいます ... 現在 119599 個のファイルとディレクトリがインストールされています。)
.../liblist-moreutils-perl_0.33-2+b1_armhf.deb を展開する準備をしています ...
liblist-moreutils-perl (0.33-2+b1) を展開しています...
以前に未選択のパッケージ libconfig-inifiles-perl を選択しています。
.../libconfig-inifiles-perl_2.83-3_all.deb を展開する準備をしています ...
libconfig-inifiles-perl (2.83-3) を展開しています...
以前に未選択のパッケージ mytop を選択しています。
.../archives/mytop_1.9.1-2_all.deb を展開する準備をしています ...
mytop (1.9.1-2) を展開しています...
man-db (2.7.0.2-5) のトリガを処理しています ...
liblist-moreutils-perl (0.33-2+b1) を設定しています ...
libconfig-inifiles-perl (2.83-3) を設定しています ...
mytop (1.9.1-2) を設定しています ...
ujpadmin@commet:~ $

 インストールされたファイルを確認.

ujpadmin@commet:~ $ dpkg -L mytop
/.
/usr
/usr/share
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/mytop.1p.gz
/usr/share/doc
/usr/share/doc/mytop
/usr/share/doc/mytop/changelog.gz
/usr/share/doc/mytop/copyright
/usr/share/doc/mytop/mytop.sample.conf
/usr/share/doc/mytop/changelog.Debian.gz
/usr/bin
/usr/bin/mytop
ujpadmin@commet:~ $
Page Top

mytopを使ってみる anchor.png

 mysqlモニタで接続状態を作って,mytopコマンドで確認してみる.  

ujpadmin@commet:~ $ mysql -uroot --silent &
[1] 22054
ujpadmin@commet:~ $

 mytopコマンドを実行.

ujpadmin@commet:~ $ mytop

 次の様な画面が表示される.

MySQL on localhost (5.5.44)          load 0.00 0.00 0.00 1/203 22086 up 0+00:11:50 [14:25:16]
 Queries: 162.0    qps:    0 Slow:     0.0         Se/In/Up/De(%):    46/00/00/00
 Key Efficiency: 100.0%  Bps in/out:  13.3/204.0
       Id      User         Host/IP         DB       Time    Cmd    State Query
       --      ----         -------         --       ----    ---    ----- ----------
       48      root       localhost                    89  Sleep
       49      root       localhost                     0  Query          show full processlist

 このID48が先ほどのMySQLモニタで,49はshown full professlistを実行しているmytopコマンドの接続とわかる.  キーボードからqを入力すれば,mytopを停止できる.


トップ   差分 バックアップ 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Counter: 2251, today: 2, yesterday: 1
最終更新: 2016-07-10 (日) 14:29:47 (JST) (2808d) by shinnai(shinnai)

広告スペース
Google