RaspberryPiにmysqlをインストール
RaspberryPiへmysql(データベース)を導入しました。
前提
mysqlのデータはNFS環境に保存します。 (RaspberryPi SDカードへの書き込みを抑制するため)
お決まり
作業はrootで実施するのでsuしておきます。
$ su -
Installation
Install
- 前提パッケージの導入
# apt-get install cmake # apt-get install libncurses5-dev # apt-get install bison
- ダウンロード
# git clone https://github.com/mysql/mysql-server.git
- 移動
# mv mysql-server /var/opt/
- cmake
# cd /var/opt/mysql-server # mkdir release # cd release/ # cmake .. -DDOWNLOAD_BOOST=1 -DWITH_BOOST=./boost -DENABLE_DOWNLOADS=1 -DDEFAULT_CHARSET=utf8 - DDEFAULT_COLLATION=utf8_general_ci
- 前提パッケージのインストール2
# apt-get install gcc-4.7 # apt-get install g++-4.7 # update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 47 --slave /usr/bin/g++ g++ /usr/bin/g++-4.7 --slave /usr/bin/gcov gcov /usr/bin/gcov-4.7 # update-alternatives --config gcc
- gccのバージョン確認
# gcc -v
- make 結構時間がかかります。
# make
- install
# make install
Initial Setting
- 定義ファイルの作成
# nano /usr/local/mysql/my.cnf
[client] port = 3306 socket = /var/run/mysqld/mysqld.sock default-character-set=utf8mb4 [mysqld] user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr/local/mysql datadir = /var/opt/mysqldata tmpdir = /tmp character-set-server=utf8mb4 skip-character-set-client-handshake bind-address = 127.0.0.1
- 定義ファイルのリンク
# mkdir /etc/mysql # ln -s /usr/local/mysql/my.cnf /etc/mysql/my.cnf
- データ格納先領域のマウント設定
# nano /etc/fstab
NFSサーバIP:/NFSパス /var/opt/mysqldata nfs rsize=32768,wsize=32768,nolock 0 0
- データ格納先領域のマウント先作成
# mkdir /var/opt/mysqldata
- データ格納先領域のマウント
# mount /var/opt/mysqldata
- ユーザ追加
# groupadd mysql # useradd -r -g mysql mysql # cd /usr/local/mysql # chown -R mysql . # chgrp -R mysql . # chown -R mysql.mysql /var/opt/mysqldata/
- イニシャライズ
# bin/mysqld --initialize --user=mysql
※表示されるパスワードを控える
- セットアップ
# bin/mysql_ssl_rsa_setup # chown -R root . # chown -R mysql /var/opt/mysqldata # cp support-files/mysql.server /etc/init.d/mysql # update-rc.d mysql defaults # service mysql start
- 変数設定
# nano /etc/profile.d/var_mysql.sh
if [ -d "/usr/local/mysql/bin" ] ; then PATH="/usr/local/mysql/bin:$PATH" fi
- パスワード変更
# PATH="/usr/local/mysql/bin:$PATH" # mysqladmin -p -u root password
- 動作確認
# mysqlshow -p -u root
gccのバージョン確認
alternative gcc (/usr/bin/gcc を提供) には 3 個の選択肢があります。 選択肢 パス 優先度 状態 \------------------------------------------------------------ 0 /usr/bin/gcc-4.8 48 自動モード \* 1 /usr/bin/gcc-4.6 46 手動モード 2 /usr/bin/gcc-4.7 47 手動モード 3 /usr/bin/gcc-4.8 48 手動モード 現在の選択 [*] を保持するには Enter、さもなければ選択肢の番号のキーを押してください: 2 update-alternatives: /usr/bin/gcc (gcc) を提供するために 手動モード で /usr/bin/gcc-4.7 を使います
参考
[http://hinakin.main.jp/piapc.htm](http://hinakin.main.jp/piapc.htm)
Usage
データベースの追加
# mysql -u root -p # CREATE DATABASE <<データベース名>> DEFAULT CHARACTER SET utf8;
mysqldump
- バックアップ
# mysqldump -u root -p -t <<対象データベース名>> > <<バックアップファイル名>>
- リストア
# mysql -u root -p <<対象データベース名>> < <<リストアファイル名>>
外部接続許可
- 設定ファイル編集
# nano /etc/mysql/my.cnf
#bind-address = 127.0.0.1
※添付ファイル参考
- 再起動
# service mysql restart
- 対象データベースへユーザを追加
# mysql -u root -p # grant all privileges on <<対象データベース名>>.* to '<<ユーザ名>>'@'<<許可するホストのIP(ワイルドカードは % >>' identified by '<<パスワード>>';
制限ユーザ作成
BK用途(ReadOnly)
- 作成
# GRANT SELECT, SHOW VIEW ON *.* TO '<<ユーザ名>>'@'<<許可するホストのIP(ワイルドカードは % >>' IDENTIFIED BY '<<パスワード>>'; # GRANT LOCK TABLES ON *.* TO ''<<ユーザ名>>''@'<<許可するホストのIP(ワイルドカードは % >>' IDENTIFIED BY '<<パスワード>>';
- 反映
# FLUSH PRIVILEGES;
- 確認
# SHOW GRANTS FOR '<<ユーザ名>>'@'<<許可するホストのIP(ワイルドカードは % >>';
↓気が向いた時でいいのでポチって頂けると幸いです↓