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を停止できる.


Front page   Diff Backup Copy Rename Reload   New Page Page list Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom)
Counter: 2668, today: 1, yesterday: 3
Last-modified: 2016-07-10 (Sun) 14:29:47 (JST) (3139d) by shinnai(shinnai)

広告スペース
Google