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は速度は早いが、トランザクションが サポートされていない。非標準のストレージエンジンであるInnoDBはMyISAMに 比べると速度が劣るがトランザクションをサポートする。
汎用機畑で育った私としてはトランザクションが無い(すなわちcommit、 rollbackが無い)のは信じられないので、デフォルトのストレージエンジンを 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
権限の種類
- ALL : すべての権限。
- ALTER : ALTER TABLE構文が実行できる権限。
- CREATE : データベースとテーブルの作成が行える権限。
- DROP : データベースとテーブルの削除が行える権限。
- FILE : LOAD DATA構文とSELECT 〜 INTO OUTFILE構文を実行できる権限。
- PROCESS : mysqladminコマンドのprocesslistとkill命令を実行できる権限。
- RELOAD : mysqladminコマンドのreload, refresh, flush-privileges, flush-hosts, flush-logs, flush-tables命令を実行できる権限。
- SHUTDOWN : mysqladminコマンドのshutdown命令を実行できる権限。
- 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もバージョンアップ。
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