トップ «前の日(07-29) 最新 次の日(07-31)» 追記

Masa's blog

検索キーワード:

2009年07月30日 MySQL-5.x 儂(わし)的解釈によるメモ(運用編)

_ MySQL-5.x 儂(わし)的解釈によるメモ(運用編)

Slackware-12.xに標準でインストールされるMySQL-5.xをそのまま運用する際に 最低限必要と思われる知識に関するメモ。いろんなページの切り貼り。

Java儂(わし)的解釈によるメモ(JDBC + MySQL編)と若干かぶってるのは御勘弁を。

前提条件

  • MySQLの管理者 root
  • MySQLの一般ユーザ兼管理者 m-ito

データベース領域の初期化

mysqldを起動するに当たって、一度だけ実行する必要がある。

# mysql_install_db --user=mysql

mysqld起動スクリプトの修正

ネットワーク越しにアクセス(JDBC経由も含む)するために起動オプションを修正する (/etc/rc.d/rc.mysqld)。

#SKIP="--skip-networking"  <-- コメントアウト

MySQLコンフィグファイル設定

デフォルト文字コード、デフォルトストレージエンジンの設定。

標準のストレージエンジンであるMyISAMは速度は早いが、トランザクションが サポートされていない。非標準のストレージエンジンであるInnoDBMyISAMに 比べると速度が劣るがトランザクションをサポートする。

汎用機畑で育った私としてはトランザクションが無い(すなわちcommitrollbackが無い)のは信じられないので、デフォルトのストレージエンジンを InnoDBに変更する。また、クライアント、サーバともにデフォルトの文字コー ドをujisとする。最近はutf8が主流になりつつあるそうですが...。

 # cp /etc/my-small.conf /etc/my.cnf
 # vi /etc/my.cnf
 [client]
 ##default-character-set = utf8
 default-character-set = ujis

 [mysqld]
 ##default-character-set = utf8
 default-character-set = ujis
 default-storage-engine=innodb

mysqld起動

# chmod +x /etc/rc.d/rc.mysqld; reboot

MySQL管理者(root)のパスワード設定

$ mysqladmin -u root password ROOT-PASSWORD

データベース(testdb)の作成

$ mysql -u root -p
Enter password: XXXXXXXXXXXXX <-- ROOT-PASSWORDを入力する
mysql> create database testdb character set ujis;
mysql> quit

一般ユーザ(m-ito)を作成

$ mysql -u root -p
Enter password: XXXXXXXXXXXXX <-- ROOT-PASSWORDを入力する
mysql> create user 'm-ito'@'localhost' identified by 'USER-PASSWORD';
mysql> quit

一般ユーザ(m-ito)にデータベースへのアクセス権を設定

$ mysql -u root -p testdb
Enter password: XXXXXXXXXXXXX <-- ROOT-PASSWORDを入力する
mysql> grant all on testdb.* to 'm-ito'@'localhost' identified by 'USER-PASSWORD';
mysql> quit

一般ユーザ用MySQLコンフィグファイル設定

パスワードの設定とデフォルト文字コードの設定。このあたりは必要に応じ て...。

$ cp /etc/my-small.conf ~m-ito/.my.cnf
$ chmod 600 ~m-ito/.my.cnf
$ vi ~m-ito/.my.cnf
[client]
password = USER-PASSWORD
##default-character-set = utf8
default-character-set = ujis

データベース、テーブル情報表示

$ mysqlshow -u m-ito -p testdb HogeTable

データベースのダンプ出力

$ msql -u root -p testdb
LOCK TABLES HogeTable READ;
CTRL-Z
$ mysqldump -u m-ito -p testdb HogeTable
$ mysqldump -u m-ito -p --databases testdb
$ mysqldump -u m-ito -p --all-databases
$ fg
UNLOCK TABLES;

ユーザ管理

$ mysql -u root -p
権限の種類
  • DELETE : DELETE構文を実行できる権限。
  • INSERT : INSERT構文を実行できる権限。
  • SELECT : SELECT構文を実行できる権限。
  • UPDATE : UPDATE構文を実行できる権限。
  • INDEX : インデックスの作成と削除が行える権限。
  • REFERENCES : テーブルのリファレンスが参照できる権限。
  • USAGE : すべての権限がない。
管理者の追加
GRANT ALL ON *.* TO 'm-ito'@'%' IDENTIFIED BY 'USER-PASSWORD' WITH GRANT OPTION;
GRANT ALL ON *.* TO 'm-ito'@'localhost' IDENTIFIED BY 'USER-PASSWORD' WITH GRANT OPTION;
FLUSH PRIVILEGES;
一般ユーザの追加
GRANT SELECT,INSERT,UPDATE,DELETE ON testdb.* TO 'm-ito'@'localhost' IDENTIFIED BY 'USER-PASSWORD';
FLUSH PRIVILEGES;
ユーザ権限の削除
REVOKE ALL ON testdb.* FROM 'm-ito';
FLUSH PRIVILEGES;
ユーザの削除

REVOKEにて全ての権限を削除後

DROP USER 'm-ito';
FLUSH PRIVILEGES;
ユーザの権限確認
SELECT * FROM mysql.user WHERE User='m-ito';

データベースの削除

mysql -u root -p
DROP DATABASE testdb;

パスワードの設定

mysql -u root -p
SET PASSWORD FOR 'm-ito'@'%' = PASSWORD('USER-PASSWORD');

CSVファイルの取り込み

mysql -u root -p
LOCK TABLES HogeTable WRITE;
LOAD DATA INFILE "Hoge.csv" INTO TABLE HogeTable FIELDS TERMINATED BY ',' ENCLOSED BY '"';
UNLOCK TABLES;
  • フィールド区切り文字のデフォルトは「タブ」。
  • 文字列囲み文字のデフォルトは「無し」。

CSVファイルへの書き出し

mysql -u root -p
LOCK TABLES HogeTable READ;
SELECT * FROM HogeTable INTO OUTFILE "Hoge.csv" FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"';
UNLOCK TABLES;
  • フィールド区切り文字のデフォルトは「タブ」。
  • 文字列囲み文字のデフォルトは「無し」。

_ BIND 9の脆弱性について

BIND 9にてDynamic DNS機能に関して脆弱性が報告されている。DoSの対称になってしまうとのこと。

JVNVU#725188 ISC BIND 9 におけるサービス運用妨害 (DoS) の脆弱性

早速、libretto100(myh.no-ip.org)のbindもバージョンアップ。

bind-9.4.3-P3


2013年07月30日 Building openshot on Slackware-14.0

_ Building openshot on Slackware-14.0

pre-require

Python-3.3.2.tar.bz2

$ tar xvvf Python-3.3.2.tar.bz2
$ cd Python-3.3.2
$ export LC_ALL=ja_JP.UTF-8; export LANG=ja_JP.UTF-8
$ ./configure && make
# make install && ldconfig

ladspa_sdk.tgz

$ tar xvvf ladspa_sdk.tgz
$ cd ladspa_sdk
# cp src/ladspa.h /usr/local/include/

frei0r-plugins-1.4.tar.gz

$ tar xvvf frei0r-plugins-1.4.tar.gz
$ cd frei0r-plugins-1.4
$ ./configure && make
# make install && ldconfig

goocanvas-1.0.0.tar.bz2

$ tar xvvf goocanvas-1.0.0.tar.bz2
$ cd goocanvas-1.0.0
$ ./configure && make
# make install && ldconfig

goocanvas-2.0.1.tar.bz2

$ tar xvvf goocanvas-2.0.1.tar.bz2
$ cd goocanvas-2.0.1
$ ./configure --enable-python=yes && make
# make install && ldconfig

pygoocanvas-0.14.1.tar.bz2

$ tar xvvf pygoocanvas-0.14.1.tar.bz2
$ cd pygoocanvas-0.14.1
$ ./configure && make
# make install && ldconfig

pyxdg-0.25.tar.gz

$ tar xvvf pyxdg-0.25.tar.gz
$ cd pyxdg-0.25
# python setup.py install

mlt-0.9.0.tar.gz

$ tar xvvf mlt-0.9.0.tar.gz
$ cd mlt-0.9.0
$ ./configure --enable-gpl  --enable-gpl3 --swig-languages="java perl php python ruby tcl"
$ make
# make install
# cd src/swig/python
# PYTHONSITEPKG=$(python -c "import sys, os; print os.path.join('/usr/lib${LIBDIRSUFFIX}', 'python%s' % sys.version[:3], 'site-packages')")
# install -m755 mlt.py $PYTHONSITEPKG/
# install -m755 _mlt.so $PYTHONSITEPKG/
# install -m755 mlt_wrap.o $PYTHONSITEPKG/
echo "/usr/local/lib/mlt" >>/etc/ld.so.conf && ldconfig

Install blender-2.68.tar.gz

oiio-Release-1.2.0.zip

$ unzip -x oiio-Release-1.2.0.zip
$ cd oiio-Release-1.2.0

$ cat ../oiio-Release-1.2.0.diff

*** ./src/libOpenImageIO/fmath_test.cpp.ORG	2013-07-30 18:57:09.981238833 +0900
--- ./src/libOpenImageIO/fmath_test.cpp	2013-07-30 18:57:41.813284520 +0900
***************
*** 72,79 ****
      OIIO_CHECK_EQUAL ((bit_range_convert<2,20>(3)), 1048575);
      OIIO_CHECK_EQUAL ((bit_range_convert<20,2>(1048575)), 3);
      OIIO_CHECK_EQUAL ((bit_range_convert<20,21>(1048575)), 2097151);
!     OIIO_CHECK_EQUAL ((bit_range_convert<32,32>(4294967295)), 4294967295);
!     OIIO_CHECK_EQUAL ((bit_range_convert<32,16>(4294967295)), 65535);
  // These are not expected to work, since bit_range_convert only takes a
  // regular 'unsigned int' as parameter.  If we need >32 bit conversion,
  // we need to add a uint64_t version of bit_range_convert.
--- 72,79 ----
      OIIO_CHECK_EQUAL ((bit_range_convert<2,20>(3)), 1048575);
      OIIO_CHECK_EQUAL ((bit_range_convert<20,2>(1048575)), 3);
      OIIO_CHECK_EQUAL ((bit_range_convert<20,21>(1048575)), 2097151);
!     OIIO_CHECK_EQUAL ((bit_range_convert<32,32>(4294967295U)), 4294967295U);
!     OIIO_CHECK_EQUAL ((bit_range_convert<32,16>(4294967295U)), 65535);
  // These are not expected to work, since bit_range_convert only takes a
  // regular 'unsigned int' as parameter.  If we need >32 bit conversion,
  // we need to add a uint64_t version of bit_range_convert.

$ patch -p0 <oiio-Release-1.2.0.diff

$ CFLAGS="-march=i586 -Werror" CXXFLAGS="-march=i586 -Werror" make

# mkdir /usr/local/openimageio
# cd dist/linux
# tar cf - . | (cd /usr/local/openimageio && tar xvpif -)
# chown -R root.root /usr/local/openimageio
# echo /usr/local/openimageio/lib >>/etc/ld.so.conf && ldconfig

add PATH setting in ~/.profile

PATH=${PATH}:/usr/local/openimageio/bin

blender-2.68.tar.gz

$ tar xvvf blender-2.68.tar.gz
$ cd blender-2.68
$ OPENIMAGEIO_ROOT_DIR=/usr/local/openimageio make

# cd ../build_linux/bin
# mkdir /usr/local/blender-2.68
# tar cf - . | (cd /usr/local/blender-2.68 && tar xvpif -)
# chown -R root.root /usr/local/blender-2.68

# cd /usr/local/bin
# ln -s /usr/local/blender-2.68/blender .

Install openshot-1.4.3.tar.gz

$ tar xvvf openshot-1.4.3.tar.gz
$ cd openshot-1.4.3
# python setup.py install