Raspberry PI の Ubuntu Mate 上で、Python IDLEを触ろうと思ったら全く日本語が入力できない。フォントの設定かなと、日本が入力できそうなフォントに変更するもだめ。

と思ったら、そもそも、Ubuntu上で日本語入力できてないじゃないか。

画面表示は日本語になっているので、IMEも当然日本語になっているかと思ったのが甘かった。

以下のサイトの通り、設定する。

http://deviceplus.jp/hobby/raspberrypi_entry_049/

メニュー - 設定 - ユーザー向け - 言語サポート

ubuntu_mate_jp_input01

インストール

ubuntu_mate_jp_input02

システム全体に適用

ubuntu_mate_jp_input03

再起動を行うと日本語入力可能に。

Python IDLE を起動し、Options - Configure IDLE から、Takaoゴシックを選択

ubuntu_mate_jp_input04

日本語が使えるようになりました。

ubuntu_mate_jp_input05

1.インストール

https://www.raspberrypi.org/downloads/

から、Ubuntu Mate をダウンロード、解凍(7zipが便利)して、image ファイルを、micro  SD カードに焼く(Win32 Disk Imagerが便利)。Rasbperry Pi にさして起動。

2.SDカードの全容量を認識させる

https://www.raspberrypi.org/forums/viewtopic.php?f=91&t=110785

32GB のSDカードを利用したのだが、7.2GB しか割り当てられていない。

root@pi:/home/piroto# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       7.2G  3.9G  3.4G  54% /
devtmpfs        459M     0  459M   0% /dev
tmpfs           463M  404K  463M   1% /dev/shm
tmpfs           463M   13M  451M   3% /run
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           463M     0  463M   0% /sys/fs/cgroup
/dev/mmcblk0p1   64M   20M   45M  32% /boot
tmpfs            93M   44K   93M   1% /run/user/1000

http://raspberrypi.stackexchange.com/questions/37739/ubuntu-mate-not-using-all-its-storage

ルート(sudo su)もしくは sudo でFDISK を起動 (fdisk /dev/mmcblk0)

root@pi:/dev# ls -l | grep "mmc*"
brw-rw----  1 root disk    179,   0  4月 21  2016 mmcblk0
brw-rw----  1 root disk    179,   1  4月 21  2016 mmcblk0p1
brw-rw----  1 root disk    179,   2  4月 21  2016 mmcblk0p2
root@pi:/dev# fdisk /dev/mmcblk0

Welcome to fdisk (util-linux 2.27.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): m

Help:

  DOS (MBR)
   a   toggle a bootable flag
   b   edit nested BSD disklabel
   c   toggle the dos compatibility flag

  Generic
   d   delete a partition
   F   list free unpartitioned space
   l   list known partition types
   n   add a new partition
   p   print the partition table
   t   change a partition type
   v   verify the partition table
   i   print information about a partition

  Misc
   m   print this menu
   u   change display/entry units
   x   extra functionality (experts only)

  Script
   I   load disk layout from sfdisk script file
   O   dump disk layout to sfdisk script file

  Save & Exit
   w   write table to disk and exit
   q   quit without saving changes

  Create a new label
   g   create a new empty GPT partition table
   G   create a new empty SGI (IRIX) partition table
   o   create a new empty DOS partition table
   s   create a new empty Sun partition table

内容の確認(p)

Command (m for help): p
Disk /dev/mmcblk0: 29 GiB, 31117541376 bytes, 60776448 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x580a66ff

Device         Boot  Start      End  Sectors  Size Id Type
/dev/mmcblk0p1 *      2048   133119   131072   64M  c W95 FAT32 (LBA)
/dev/mmcblk0p2      133120 15728639 15595520  7.4G 83 Linux

削除から再作成(d – 2 – n – p – 2 – enter – enter – w) し、reboot

Command (m for help): d
Partition number (1,2, default 2): 2

Partition 2 has been deleted.

Command (m for help): 2
2: unknown command

Command (m for help): n
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (2-4, default 2): 2
First sector (133120-60776447, default 133120):
Last sector, +sectors or +size{K,M,G,T,P} (133120-60776447, default 60776447):

Created a new partition 2 of type 'Linux' and of size 28.9 GiB.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: Device or resource busy

The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).

reboot あと、パーティションを拡張

root@pi:/home/piroto# resize2fs /dev/mmcblk0p2
resize2fs 1.42.13 (17-May-2015)
Filesystem at /dev/mmcblk0p2 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
The filesystem on /dev/mmcblk0p2 is now 7580416 (4k) blocks long.

/ パーティションが、29GB と認識された。

root@pi:/home/piroto# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        29G  3.9G   25G  14% /
devtmpfs        459M     0  459M   0% /dev
tmpfs           463M  200K  463M   1% /dev/shm
tmpfs           463M  6.8M  457M   2% /run
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           463M     0  463M   0% /sys/fs/cgroup
/dev/mmcblk0p1   64M   20M   45M  32% /boot
tmpfs            93M   28K   93M   1% /run/user/1000

MySQL5.7 インストールと初期設定

以前受けたOracleのMySQL講座資料から抜粋。

http://downloads.mysql.com/presentations/20151207_01_MySQL_Install_Beginners.pdf

設定

  • MySQLサーバーの設定はシステム変数で行う
  • 設定しなかったシステム変数にはデフォルト値が設定される
  • 設定方法
    • オプションファイル(/etc/my.cnf)で設定
      • デフォルトでは複数の場所のファイルを読み込み、後勝ちとなる
      • ファイルを読み込む順序は msqld –verbose –help で確認できる (eg Default options are read from the following files in the given order:/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf)
    • 一時的な設定(SET [GLOBAL|SESSION] <variable>=<value>)
  • 確認方法
    • SHOW [GLOBAL|SESSION] VARIABLES LIKE ‘%<システム変数名>%’;
    • SELECT @@global.<システム変数名>, @@session.<システム変数名>;

管理者ユーザーパスワード

  • root ユーザーの初期パスワードにはランダム文字列が設定され、ログイン後パスワードを変更するまでは何もできない。
  • DB初期化処理後、エラーログもしくはコンソールからパスワードを確認する。
    • エラーログの場所(/etc/my.cnf 確認 eg- log-error=/var/log/mysqld.log)
    • 該当行を検索 (cat /var/log/mysqld.log | grep 'password is generated')
  • パスワードの変更 (SET PASSWORD FOR ‘ユーザー名’@’ホスト名’=’変更後のパスワード’;)
  • パスワード検証プラグイン
    • インストール方法によりデフォルトで有効になっている(yum,rpm など)
      • デフォルトのポリシー(8文字以上、英語大文字/小文字/数字/特殊文字 を1文字以含む)
    • 有効化:mysql> INSTALL PLUGIN validate_password SONAME 'validate_password.so';
    • 無効化:mysql> UNINSTALL PLUGIN validate_password;
    • 確認:mysql> SHOW VARIABLES LIKE 'validate_password%';

注意すべきシステム変数

http://downloads.mysql.com/presentations/20151030_05_MySQL-Parameter-comparison.pdf

パラメータ デフォルト 推奨 説明
default_password_lifetime 360 0 パスワード有効期限。期限が切れるとログインできなくなる。
log_timestamps UTC SYSTEM UTCでは日本時間が把握しにくい。
sql_mode ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZE RO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION N/A 設定 によって、同じSQLがエラーになる/ならない、などの違いが出る。書籍やネット等で知ったSQLを実行してエラーになった場合など原因となっている可能性の確認
innodb_strict_mode ON N/A 書籍やネット等で知ったSQLを実行してエラーになった場合など原因となっている可能性の確認
secure_file_priv 環境依存 NULL もしくは 任意のディレクトリ 値が設定されていないと、OS上のmysql実行ユーザーが権限を 持つ全てのディレクトリ/ファイルに対して操作が出来てしまう。NULLを設定した場合は、OS上のファイルの読書きを全て 禁止できる。

ステータス変数

  • MySQLサーバーの動作を監視するために、ステータス変数を確認する。
    • SHOW [GLOBAL|SESSION] STAUTS ‘%<ステータス変数名>%’;
  • 特定のクエリについて調査
    • FLUSH STATUS; <クエリ実行>; SHOW STATUS;
  • 定期的に確認(15秒間隔で差分のみ表示)
      • mysqladmin –u –p … ex –i 15 –r | grep –v ‘0’

各種ログ

  • エラーログ
    • 起動/停止、サーバーサイドエラー関連
  • バイナリログ
    • 更新系の処理内容のみ記録
    • バイナリ形式mysqlbinlogコマンドでテキスト化可能
    • デフォルト非出力(log_bin, server_id を設定し出力)
  • 一般クエリログ
    • クライアント接続、実行されたすべてのSQL
    • デフォルト非出力(general_logを設定し出力)
    • サーバー稼働中に出力/非出力切り替え可
    • テーブルへも出力可能
  • スロークエリログ
    • 実行時間が指定した時間以上のクエリを出力
    • デフォルト非出力(log_slow_queries を設定し出力)
    • long_query_time:秒単位で指定,log_queries_not_using_index:インデックス未使用クエリ全出力

起動停止

  • 起動
    • mysqld –defaults-file=<my.cnfへのパス> &
  • 停止
    • mysqladmin –u root –p shutdown

接続

  • mysql –u <ユーザー名> –p
  • リモートホストを指定
    • mysql –u <ユーザー名> –h <ホスト名> –P <ポート番号> –p

データベース(スキーマ)

  • 作成
    • CREATE DATABASE <データベース名>;
  • 確認
    • SHOW DATABASES;

データ型

講座の講師をやられていた方の著作