MySQL
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
* [[MySQL]]
#contents
** インストール
mysqlはインストールされている可能性がありますので、
rpm -qa | grep mysql
で確認します。バージョンが怪しかったので、とりあえずけし...
rpm -qa | grep mysql| xargs rpm -e
消えなかった場合は、--nodepsでインストールしました。http:...
rpm -Uvh --nodeps MySQL-server-4.1.7-0.i386.rpm
rpm -Uvh --nodeps MySQL-client-4.1.7-0.i386.rpm
rpm -Uvh --nodeps MySQL-devel-4.1.7-0.i386.rpm
もししくはソースからのコンパイルです。http://dev.mysql.co...
./configure --prefix=/usr/local/mysql --with-mysqld-user...
--with-charset=sjis --with-extra-charsets=all --with-ber...
--with-innodb --without-readline --with-named-thread-lib...
この --with-named-thread-libs="-lpthread"は、CentOS5にイ...
configure: error:This is a linux system and LinuxThreads...
とエラーが出ちゃったので、指定してます。
また他にエラーがでるときは
--without-readline
をはずしてみましょう。
make
CentOS5で下記のエラーが
mysqld.o: In function `main':
mysqld.cc:(.text+0x3ee0): undefined reference to `my_fas...
mysqld.o:mysqld.cc:(.text+0x4143): more undefined refere...
collect2: ld returned 1 exit status
んーー http://bbs.fedora.jp/read.php?FID=9&TID=3606を参...
#include <assert.h>
がありますので、その下に
#ifdef PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP
pthread_mutexattr_t my_fast_mutexattr;
#endif
を追加します。するとmakeは通りました。
opensuse11.1で
mysql.cc:1641: error: expected primary-expression before...
とでたので、gccとg++を4.1にしてやるといけました。~
また他のディストリビューションでやっている時に
ld: cannot find -lstdc++
とのエラーが..
ln -s /usr/lib/libstdc++.so.5.0.7 /usr/lib/libstdc++.so
として再びmakeでいけました。
make install
このとき、/usr/local/mysql/share/mysqlにmy-???.cnfがあり...
展開したディレクトリのsupport-filesに
mysql-server.sh
がありますので、自動起動する場合は使用しましょう。~
mysql-server.shを開いて、@で囲ってあるところを編集します。
basedir=/usr/local/mysql
bindir=/usr/local/mysql/bin
if test "$datadir" != "/usr/local/mysql/var"
pid_file=$datadir/`/bin/hostname`.pid
RedHatの場合
cd support-files
cp mysql.server.sh /etc/rc.d/init.d/mysqld
chmod 755 /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
chkconfig --level 345 mysqld on
FreeBSDの場合
cd support-files
cp mysql.server.sh /usr/local/etc/rc.d/
chmod 755 /usr/local/etc/rc.d/mysql.server.sh
次にDBD::mysqlをインストールします。これはperl用のドライ...
DBD-mysql-2.9004.tar.gzをダウンロードしました。では解凍し...
perl Makefile.PL
make
make test
make install
ここでエラーが
failed: Can't load '/root/DBD-mysql-4.005/blib/arch/auto...
とか出る場合は、
cd /usr/local/lib
ln -s /usr/local/mysql/lib/mysql/libmysqlclient.so.12 li...
で作っておきました。
次にPHPで使用するにはPHPのソースを展開しているディレクト...
./configure --with-mysql
make
make install
ユーザがないときは作成しておきます。
groupadd mysql
useradd -g mysql -d /dev/null -s /bin/false mysql
もしくはもう一度[[PHP]]をインストールしてください。ではMy...
scripts/mysql_install_db
/usr/local/mysql/varにできてました。これは、my.cnfのdatad...
chown -R mysql:mysql /usr/local/mysql/var
/etcにmy.cnfがいます。では起動して、パスワードを変更して...
mysqld_safe --user=mysql &
/usr/local/mysql/bin/mysqladmin -u root password 'new-pa...
/usr/local/mysql/bin/mysqladmin -u root -h localhost pas...
たまたまwindows版でもやってみたんですが、password 'new-pa...
では接続してみましょう。
mysql -u root -p
windowsの場合はsetup.exeで終わり。インストールディレクト...
を実行しましょう。userとpasswordを設定してログインすると...
http://www.nihon-eng.co.jp/c-break/TechNote/mysql/MySQL5_...
を参考にしてみてください。サービスはbin\mysqld-nt --insta...
またよく/etc/my.cnfとありますが、my.cnfはここにおく必要が...
http://web.kuicr.kyoto-u.ac.jp/manual/mysql/manual.ja_Acc...
** インストール Ver5
http://dev.mysql.com/downloads/mysql/5.0.htmlから5.0.13を...
5.1も同じでした。
wget http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-...
tar xzvf mysql-5.0.13-rc.tar.gz
cd mysql-5.0.13-rc
どのようなオプションがあるか見ておきます。
./configure --help
./configure --prefix=/usr/local/mysql5 --with-mysqld-use...
--with-charset=binary --with-extra-charsets=all --with-b...
このとき
checking for termcap functions library... configure: err...
ってエラーが出た場合は、
yum install ncurses-devel
で入れてやりました。
make
あれ?
exec: g++: not found
なんでいれてないんだろ?
yum install gcc-c++
でインストール
make install
ではデータディレクトリの権限を変更しておきましょう。ユー...
groupadd mysql
useradd -g mysql -d /dev/null -s /bin/false mysql
またcnfファイルをコピーしておきます。
cp support-files/my-large.cnf /etc/my.cnf
my.cnfのmysqldにdefault-character-set=ujisを追加して、
[client]
default-character-set=ujis
[mysqld]
default-character-set = ujis
skip-character-set-client-handshake
[mysqldump]
default-character-set = ujis
[mysql]
default-character-set = ujis
また[mysqld]にinnodb_file_per_tableを追加しておくと、ibda...
ではデータベースを初期化します。
scripts/mysql_install_db
おっ?5.1の時エラーがでたぞ
unknown option '--skip-federated'
my.cnfにskip-federatedってあるからか。とりあえずコメント
chown -R mysql:mysql /usr/local/mysql5/var/
では起動させてパスワードを変えておきます。
/usr/local/mysql5/bin/mysqld_safe --user=mysql &
/usr/local/mysql5/bin/mysqladmin -u root password 'new-p...
/usr/local/mysql5/bin/mysqladmin -u root -pnew-password ...
文字化けについてはこちらを参考にさせていただきました。htt...
また起動用のファイルは上記で説明しているRedHatの場合と同...
GUIのツールはhttp://dev.mysql.com/downloads/gui-tools/5.0...
参考:[[【MySQLウォッチ】第36回 文字化けのメカニズム>http...
** アップグレード
[[www.mysql.gr.jp4.1以上(含む5) への移行支援>http://www.m...
4.1に移行する場合はパスワードの長さに対応するためにmysql_...
また
[mysqld]
old-passwords
で逃げるかです。しかし、これ以上に問題なのは、VARCHARとCH...
mysql5を止めた後、mysql5のデータディレクトリにmysql4.0の...
長さを変更していきます。変更後myisamchk -r *.MYIでリペア...
varcharとcharの長さの変更は、http://www.mysql.gr.jp/frame...
./mysql_change_char_len.sh --fix --user=hogeuser --passw...
ポートを3306から3307に変更している場合です。そのままであ...
参考~
[[http://private.ceek.jp/archives/001772.html]]~
[[http://www.klab.org/media/mysql/]]~
[[http://tech.feedforce.jp/mysql_40_to_50.html]]~
[[MYSQL 4.0.x から 5.X系への移行>http://questionbox.jp.ms...
/usr/local/mysql5/varにコピーするだけでいけるんだ。おっい...
ん?5.1はだめっぽいな。もうちょっと試してみよ。5.0から5.1...
**複数バージョンを共存
起動時(mysqld)に --defaults-fileオプションで、my.cnfを指...
**デーモンでの起動
cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d...
でコピーしてやります。あとは
chmod 755 /etc/init.d/mysqld
chkconfig --add mysqld
** コマンド
パスワードを設定している場合は -u root -pを付加しましょう...
書き方は知っているだけも3通りで、下記はみな同じです。
mysql -u root -p rootpassword
mysql -uroot -prootpassword
mysql -user=root --password=rootpassword
-起動
mysqld_safe --user=mysql &
-停止
mysqladmin shutdown
mysqladmin shutdown -uroot -phogepass
-生存確認
mysqladmin ping
-バージョン確認
mysqladmin version
mysqladmin version -uroot -phogepass
-接続
mysql -u root --password=passwd database名
ポートを指定する場合は、ホストも指定してやって、
/usr/local/mysql5/bin/mysql -h127.0.0.1 -P3307 -uroot -p...
としないと
/usr/local/mysql5/bin/mysql -P3307 -uroot -phogepass
だけではポートが無視されちゃいました。
-パラメータ確認
mysqladmin -uroot -phoge variables
** MySQLコマンド
-データベース選択
USE hogedb;
-データベースを見る
SHOW DATABASES;
-設定値をみる
show variables;
-プロセスを見る
SHOW PROCESSLIST;
連続で見る場合は、
watch -n1 'mysql -h192.168.1.1 -P3306 -uhogeuser -phogep...
参考[[12.5.4.24. SHOW PROCESSLIST 構文>http://dev.mysql.c...
-スレッドの情報を表示させる。(実行中のSQLを見る)
SHOW [FULL] PROCESSLIST
またIDを指定して、KILL idで終了させることができる。
-テーブルの一覧
SHOW TABLES;
-ユーザ権限表示
SHOW GRANTS FOR hoge@'localhost';
-サーバの状態表示
SHOW STATUS [LILE pattern]
-テーブルの状態表示
SHOW TABLE STATUS
サイズとか更新された日付とかわかります。
** SQL
-ユーザ作成 権限を変更した場合は、FLUSH PRIVILEGESを実行...
grant create,drop,select,insert,update,delete on *.* to ...
onは{テーブル名 | * | *.* | データベース名.*}です。
grant all privileges on *.* to user@'192.168.1.0/255.255...
-ユーザ削除
delete from mysql.user where User='a';
-パスワード変更
SET PASSWORD FOR root=PASSWORD('hoge');
もしくは
SET PASSWORD FOR root@localhost=PASSWORD('hoge');
-ユーザの一覧
select User,Host from mysql.user;
-データベース作成
create database aaa;
文字コードを指定する場合は、
create database aaa character set sjis;
他にもutf8,ujis (EUC-JP)
-データベース削除
drop database aaa;
-項目追加
ALTER TABLE hogetable ADD COLUMN hogekoumoku VARCHAR(100...
-項目削除
ALTER TABLE hogetable DROP hogekoumoku;
-長さ変更
ALTER TABLE hogetable MODIFY COLUMN hogekoumoku VARCHAR(...
** 型
|~データ型|~内容|~データ範囲|
|int|4バイト整数|-2147483648~2147483647|
|int unsigned|4バイト整数|0~4294967295|
|bigint|8バイト整数|-9223372036854775808~922337203685477...
|float|不動小数点数|-3.402823466E+38~-1.175494351E-38|
|double|倍精度不動小数点数|-1.7976931348623157E+308~-2.2...
|char( )|固定長文字列|最大長255バイト|
|varchar( )|可変長文字列|最大長255バイト |
|text|可変長文字列|最大長65535バイト|
|date|日付|1000-1-1~9999-12-31|
|datetime|日付時刻|1000-1-1 00:00:00~9999-12-31 23:59:59|
|enum(' ', ' ', ...)|列挙|最大65535個の固有値|
|set(' ', ' ', ...)|リスト|最大64個の要素|
** my.cnf
mysqladmin -u root variables -pで値を確認してからいろいろ...
あとmysql --helpも
-key_buffer=256M~
検索に使われるインデックスをバッファに保存する際のメモリ...
メモリに余裕がある場合増やすとパフォーマンスが向上します。
-table_cache=256~
データのキャッシュサイズです。
値を大きくすることでディスクのI/Oが減りパフォーマンスが向...
-max_allowed_packet=1M~
入力データ保持のための最大バッファサイズです。
画像など、大きなデータ挿入をおこなう際に増やします。
-sort_buffer=1M~
ソートをおこなう際に使用するバッファサイズです。
値を大きくすることでORDER BYやGROUP BYをクエリーに用いた...
-record_buffer=1M~
値を大きくすることでインデックスを含まないクエリーの実行...
-long_query_time=1~
mysqladmin statusコマンドで表示されるSlow queriesにカウン...
-log-slow-queries=ファイル名~
遅いクエリのログの出力先を指定
-join_buffer = 131072~
大量のjoin が発行される場合はjoin_bufferを増やします。
-log=ファイル名~
クエリのログをはきます。SQLの確認や開発の時などに
** ODBC
http://dev.mysql.com/からMySQL Connector/ODBCのGenerally ...
を選択してダウンロードします。
** JDBC
http://dev.mysql.com/downloads/からMySQL Connector/JのGen...
その中にmysql-connector-java-3.1.6-bin.jarがありますので...
org.gjt.mm.mysql.Driver
URLは
jdbc:mysql://hogeserver/hogedb?useUnicode=true&character...
もしくは文字コードによってはSJISにeuc-jpなんですが、これ...
& → &
として、
jdbc:mysql://hogeserver/hogedb?useUnicode=true&chara...
とします。また全角-が化けるとか~が化ける場合は、
jdbc:mysql://hogeserver/hogedb?useUnicode=true&chara...
とします。これはあくまでSJISでDBを作成しており、pageEncod...
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>filters.SetCharacterEncodingFilter</filt...
<init-param>
<param-name>encoding</param-name>
<param-value>MS932</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
としてます。MySQL4.0の場合です。他のバージョンは試してい...
** MySQL Control Center
http://dev.mysql.com/downloads/other/mysqlcc.html
** ダンプ・リストア
mysqldump -F -l hogedb > dump.sql
オプションの-Fはすべてのログをflushします。 -lはREAD LOCA...
mysql hogedb < dump.sql
** mytop
topコマンド風にMySQLの負荷状況がみれます。http://jeremy.z...
tar xzvf mytop-1.4.tar.gz
perl Makefile.PL
おっと
Warning: prerequisite Term::ReadKey 2.1 not found.
とでました。[[CPAN]]を参考にして、
perl -MCPAN -e shell
install Term::ReadKey
再度mytop-1.4.tar.gzを解凍したディレクトリで、
perl Makefile.PL
make
make install
ここでDBD::mysql 1 not found.と出る場合は、上のほうの記述...
mytop -uhogeuser -phogepass -ddatabase -s1
hogeuser,hogepassはユーザ、パスワードです。-dでデータベー...
** チューニング
まず時間がかかっているSQLをEXPLAIN を頭につけて実行します...
table,type,possible_key,key,key_len,ref,rows,Extra
に値が設定されているかと思います。まずkeyが適切に使われて...
んー5にあげてindex_mergeが使われているかどうか調べている...
もしやMyISAMはだめなの?
[[MySQL の最大性能を得る方法は?>http://www.mysql.gr.jp/M...
[[第6章 最適化>http://aqua.sun.ddns.vc/free/docs/mysql5.1...
[[ mysqlを高速化したいときのチューニング方法 >http://it.k...
** バイナリログ
以前からvarの下にマシン名-bin.001とかいうようなファイルが...
RESET MASTER;
もし部分的に消したい場合は、
PURGE MASTER LOGS TO 'machine-bin.005';
として、
SHOW MASTER LOGS;
を見てみると005より小さいバイナリログが削除されます。時間...
PURGE MASTER LOGS BEFORE '2005-01-01 01:01:01';
とすると2005-01-01 01:01:01より古いデータが消されます。
またバイナリログがvarの下にたまってきましたので、場所を変...
log-bin = /usr/local/mysql/binlog/binlog
また
max-binlog-size=256M <=バイナリログの最大ファイルサイズ
expire-log-days=7 <=ログの保持期間
binlog-do-db=dbname <=バイナリログを取るdb
binlog-ignore-db=dbname <=バイナリログを取らないdb
も指定できます。
http://www.softagency.co.jp/mysql/Manual/4.1.1/html-split...
** 移行
別のマシンに同じ環境を作るとき、/usr/local/mysql/varの中...
innodbの場合は、
ib_logfile0
ib_logfile1
ibdata1
もコピーします。~
参考:~
[[7.5.5.3. 複数テーブルスペース - 各テーブルを独自の .ibd...
[[【MySQLウォッチ】第23回 押さえておきたいバックアップと...
** TOOL
MySQL提供の[[MySQL GUI Tools>http://dev.mysql.com/downloa...
他にも[[つみきウェブへ!!>http://www.hi-ho.ne.jp/tsumiki/]...
あれ?[[navicat Lite版>http://www.navicat.jp/mysql/downlo...
** TIPS
***別のDBにコピー
mysqlhotcopy -u root -p hoge dbmoto dbsaki
なぜかDBD-mysql-4.005.tar.gzでは駄目で、DBD-mysql-2.9008....
スペースは空けないといけない。
***PHPが違うsocketを見ているとき
php.iniのmysql.default_socket = "/tmp/mysql.sock"に記述し...
***ERROR 1251: Client does not support authentication pro...
http://dev.mysql.com/doc/mysql/ja/Old_client.htmlから
mysql> UPDATE user SET Password = OLD_PASSWORD('mypass')
-> WHERE Host = 'some_host' AND User = 'some_user';
や
SET PASSWORD FOR hoge@localhost = OLD_PASSWORD('hogepass...
後は
mysql> FLUSH PRIVILEGES;
つまり以前はパスワードのハッシュが、16バイトだったのに4.1...
[mysqld]
old-passwords
としておけばいい。これはどうかと思いますが... もしくはwh...
***SQL実行
mysql -u root -pyourpassword database < hoge.sql
***テーブル最適化
削除を繰り返していると肥大化してくるので、最適化しておき...
optimize table hogetable;
***javaで全角カナのパをlikeでとるとケもとってくる。
dbをujisでやっていると、なぜか、where koumoku like 'パ%'...
***漢字の十で落ちた
文字列に漢字の十がある場合にinsertが失敗しました。この場...
[mysqld]
default-character-set=sjis
[mysql]
default-character-set=sjis
のあたりを見直しましょう。ソ、申などもそれにあたります。
***likeで検索されない
例えば
hoge like '%ほ%'
とかしても検索されない場合があります。そのときは、
hoge like binary '%ほ%'
***1030: Got error 127 from table handler
対象のテーブルが壊れているようなので、
repair table hogetbl;
を実行。チェックだけの場合は、
check table hogetbl;
***ログ
safe_mysqld --log=/var/log/mysql
logオプションで出力したいログファイル名を指定します。
***日付加算
日付を1日koumoku1に加算
koumoku1 + interval "1" DAY
日付を1日5時間koumoku1に加算
koumoku1 + interval "1 5" DAY_HOUR
***java.sql.SQLException: Cannot convert value '0000-00-0...
JDBCで日付のデータを取得しようとしたら、SQLExceptionが投...
参考:[[皆さんの使っているJDBCドライバのバージョン>http:/...
***AUTO_INCREMENTで生成された値の取得方法
last_insert_id()で取得可能
***年月で集計
select date_format(datekoumoku,'%Y-%m') ,count(*) from t...
** 調べ物
[[SQLインジェクションを防ぐプロキシ「GreenSQL」>http://ww...
** リンク
http://www.mysql.gr.jp/ FAQはためになります。~
http://dev.mysql.com/doc/mysql/ja/Upgrading-from-4.0.html...
[[第4章 データベース管理>http://dev.mysql.com/doc/mysql/j...
http://www.atmarkit.co.jp/flinux/rensai/mysql01/mysql01b....
http://www.y-kit.jp/saba/xp/mysqllinuxinst.htm~
http://digibot.jp/tips/linux/004.html~
http://perldoc.jp/docs/modules/DBD-mysql-2.1026/DBD/mysql...
http://tsuttayo.sytes.net/mysql/~
[[MySQLクイック・リファレンス(osCommerce)>http://www.bits...
[[phpMyAdmin]]~
[[MySQLノウハウ>http://txqz.net/blog/2006/12/13/0943]]~
[[【MySQLウォッチ】第14回 サーバー設定を見直してMySQLの性...
[[MySQLクイック・リファレンス>http://www.bitscope.co.jp/t...
** 参考書籍
[[MySQL全機能リファレンス>http://www.amazon.co.jp/exec/ob...
[[実践ハイパフォーマンスMySQL>http://www.amazon.co.jp/exe...
** コメント
-#comment
終了行:
* [[MySQL]]
#contents
** インストール
mysqlはインストールされている可能性がありますので、
rpm -qa | grep mysql
で確認します。バージョンが怪しかったので、とりあえずけし...
rpm -qa | grep mysql| xargs rpm -e
消えなかった場合は、--nodepsでインストールしました。http:...
rpm -Uvh --nodeps MySQL-server-4.1.7-0.i386.rpm
rpm -Uvh --nodeps MySQL-client-4.1.7-0.i386.rpm
rpm -Uvh --nodeps MySQL-devel-4.1.7-0.i386.rpm
もししくはソースからのコンパイルです。http://dev.mysql.co...
./configure --prefix=/usr/local/mysql --with-mysqld-user...
--with-charset=sjis --with-extra-charsets=all --with-ber...
--with-innodb --without-readline --with-named-thread-lib...
この --with-named-thread-libs="-lpthread"は、CentOS5にイ...
configure: error:This is a linux system and LinuxThreads...
とエラーが出ちゃったので、指定してます。
また他にエラーがでるときは
--without-readline
をはずしてみましょう。
make
CentOS5で下記のエラーが
mysqld.o: In function `main':
mysqld.cc:(.text+0x3ee0): undefined reference to `my_fas...
mysqld.o:mysqld.cc:(.text+0x4143): more undefined refere...
collect2: ld returned 1 exit status
んーー http://bbs.fedora.jp/read.php?FID=9&TID=3606を参...
#include <assert.h>
がありますので、その下に
#ifdef PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP
pthread_mutexattr_t my_fast_mutexattr;
#endif
を追加します。するとmakeは通りました。
opensuse11.1で
mysql.cc:1641: error: expected primary-expression before...
とでたので、gccとg++を4.1にしてやるといけました。~
また他のディストリビューションでやっている時に
ld: cannot find -lstdc++
とのエラーが..
ln -s /usr/lib/libstdc++.so.5.0.7 /usr/lib/libstdc++.so
として再びmakeでいけました。
make install
このとき、/usr/local/mysql/share/mysqlにmy-???.cnfがあり...
展開したディレクトリのsupport-filesに
mysql-server.sh
がありますので、自動起動する場合は使用しましょう。~
mysql-server.shを開いて、@で囲ってあるところを編集します。
basedir=/usr/local/mysql
bindir=/usr/local/mysql/bin
if test "$datadir" != "/usr/local/mysql/var"
pid_file=$datadir/`/bin/hostname`.pid
RedHatの場合
cd support-files
cp mysql.server.sh /etc/rc.d/init.d/mysqld
chmod 755 /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
chkconfig --level 345 mysqld on
FreeBSDの場合
cd support-files
cp mysql.server.sh /usr/local/etc/rc.d/
chmod 755 /usr/local/etc/rc.d/mysql.server.sh
次にDBD::mysqlをインストールします。これはperl用のドライ...
DBD-mysql-2.9004.tar.gzをダウンロードしました。では解凍し...
perl Makefile.PL
make
make test
make install
ここでエラーが
failed: Can't load '/root/DBD-mysql-4.005/blib/arch/auto...
とか出る場合は、
cd /usr/local/lib
ln -s /usr/local/mysql/lib/mysql/libmysqlclient.so.12 li...
で作っておきました。
次にPHPで使用するにはPHPのソースを展開しているディレクト...
./configure --with-mysql
make
make install
ユーザがないときは作成しておきます。
groupadd mysql
useradd -g mysql -d /dev/null -s /bin/false mysql
もしくはもう一度[[PHP]]をインストールしてください。ではMy...
scripts/mysql_install_db
/usr/local/mysql/varにできてました。これは、my.cnfのdatad...
chown -R mysql:mysql /usr/local/mysql/var
/etcにmy.cnfがいます。では起動して、パスワードを変更して...
mysqld_safe --user=mysql &
/usr/local/mysql/bin/mysqladmin -u root password 'new-pa...
/usr/local/mysql/bin/mysqladmin -u root -h localhost pas...
たまたまwindows版でもやってみたんですが、password 'new-pa...
では接続してみましょう。
mysql -u root -p
windowsの場合はsetup.exeで終わり。インストールディレクト...
を実行しましょう。userとpasswordを設定してログインすると...
http://www.nihon-eng.co.jp/c-break/TechNote/mysql/MySQL5_...
を参考にしてみてください。サービスはbin\mysqld-nt --insta...
またよく/etc/my.cnfとありますが、my.cnfはここにおく必要が...
http://web.kuicr.kyoto-u.ac.jp/manual/mysql/manual.ja_Acc...
** インストール Ver5
http://dev.mysql.com/downloads/mysql/5.0.htmlから5.0.13を...
5.1も同じでした。
wget http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-...
tar xzvf mysql-5.0.13-rc.tar.gz
cd mysql-5.0.13-rc
どのようなオプションがあるか見ておきます。
./configure --help
./configure --prefix=/usr/local/mysql5 --with-mysqld-use...
--with-charset=binary --with-extra-charsets=all --with-b...
このとき
checking for termcap functions library... configure: err...
ってエラーが出た場合は、
yum install ncurses-devel
で入れてやりました。
make
あれ?
exec: g++: not found
なんでいれてないんだろ?
yum install gcc-c++
でインストール
make install
ではデータディレクトリの権限を変更しておきましょう。ユー...
groupadd mysql
useradd -g mysql -d /dev/null -s /bin/false mysql
またcnfファイルをコピーしておきます。
cp support-files/my-large.cnf /etc/my.cnf
my.cnfのmysqldにdefault-character-set=ujisを追加して、
[client]
default-character-set=ujis
[mysqld]
default-character-set = ujis
skip-character-set-client-handshake
[mysqldump]
default-character-set = ujis
[mysql]
default-character-set = ujis
また[mysqld]にinnodb_file_per_tableを追加しておくと、ibda...
ではデータベースを初期化します。
scripts/mysql_install_db
おっ?5.1の時エラーがでたぞ
unknown option '--skip-federated'
my.cnfにskip-federatedってあるからか。とりあえずコメント
chown -R mysql:mysql /usr/local/mysql5/var/
では起動させてパスワードを変えておきます。
/usr/local/mysql5/bin/mysqld_safe --user=mysql &
/usr/local/mysql5/bin/mysqladmin -u root password 'new-p...
/usr/local/mysql5/bin/mysqladmin -u root -pnew-password ...
文字化けについてはこちらを参考にさせていただきました。htt...
また起動用のファイルは上記で説明しているRedHatの場合と同...
GUIのツールはhttp://dev.mysql.com/downloads/gui-tools/5.0...
参考:[[【MySQLウォッチ】第36回 文字化けのメカニズム>http...
** アップグレード
[[www.mysql.gr.jp4.1以上(含む5) への移行支援>http://www.m...
4.1に移行する場合はパスワードの長さに対応するためにmysql_...
また
[mysqld]
old-passwords
で逃げるかです。しかし、これ以上に問題なのは、VARCHARとCH...
mysql5を止めた後、mysql5のデータディレクトリにmysql4.0の...
長さを変更していきます。変更後myisamchk -r *.MYIでリペア...
varcharとcharの長さの変更は、http://www.mysql.gr.jp/frame...
./mysql_change_char_len.sh --fix --user=hogeuser --passw...
ポートを3306から3307に変更している場合です。そのままであ...
参考~
[[http://private.ceek.jp/archives/001772.html]]~
[[http://www.klab.org/media/mysql/]]~
[[http://tech.feedforce.jp/mysql_40_to_50.html]]~
[[MYSQL 4.0.x から 5.X系への移行>http://questionbox.jp.ms...
/usr/local/mysql5/varにコピーするだけでいけるんだ。おっい...
ん?5.1はだめっぽいな。もうちょっと試してみよ。5.0から5.1...
**複数バージョンを共存
起動時(mysqld)に --defaults-fileオプションで、my.cnfを指...
**デーモンでの起動
cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d...
でコピーしてやります。あとは
chmod 755 /etc/init.d/mysqld
chkconfig --add mysqld
** コマンド
パスワードを設定している場合は -u root -pを付加しましょう...
書き方は知っているだけも3通りで、下記はみな同じです。
mysql -u root -p rootpassword
mysql -uroot -prootpassword
mysql -user=root --password=rootpassword
-起動
mysqld_safe --user=mysql &
-停止
mysqladmin shutdown
mysqladmin shutdown -uroot -phogepass
-生存確認
mysqladmin ping
-バージョン確認
mysqladmin version
mysqladmin version -uroot -phogepass
-接続
mysql -u root --password=passwd database名
ポートを指定する場合は、ホストも指定してやって、
/usr/local/mysql5/bin/mysql -h127.0.0.1 -P3307 -uroot -p...
としないと
/usr/local/mysql5/bin/mysql -P3307 -uroot -phogepass
だけではポートが無視されちゃいました。
-パラメータ確認
mysqladmin -uroot -phoge variables
** MySQLコマンド
-データベース選択
USE hogedb;
-データベースを見る
SHOW DATABASES;
-設定値をみる
show variables;
-プロセスを見る
SHOW PROCESSLIST;
連続で見る場合は、
watch -n1 'mysql -h192.168.1.1 -P3306 -uhogeuser -phogep...
参考[[12.5.4.24. SHOW PROCESSLIST 構文>http://dev.mysql.c...
-スレッドの情報を表示させる。(実行中のSQLを見る)
SHOW [FULL] PROCESSLIST
またIDを指定して、KILL idで終了させることができる。
-テーブルの一覧
SHOW TABLES;
-ユーザ権限表示
SHOW GRANTS FOR hoge@'localhost';
-サーバの状態表示
SHOW STATUS [LILE pattern]
-テーブルの状態表示
SHOW TABLE STATUS
サイズとか更新された日付とかわかります。
** SQL
-ユーザ作成 権限を変更した場合は、FLUSH PRIVILEGESを実行...
grant create,drop,select,insert,update,delete on *.* to ...
onは{テーブル名 | * | *.* | データベース名.*}です。
grant all privileges on *.* to user@'192.168.1.0/255.255...
-ユーザ削除
delete from mysql.user where User='a';
-パスワード変更
SET PASSWORD FOR root=PASSWORD('hoge');
もしくは
SET PASSWORD FOR root@localhost=PASSWORD('hoge');
-ユーザの一覧
select User,Host from mysql.user;
-データベース作成
create database aaa;
文字コードを指定する場合は、
create database aaa character set sjis;
他にもutf8,ujis (EUC-JP)
-データベース削除
drop database aaa;
-項目追加
ALTER TABLE hogetable ADD COLUMN hogekoumoku VARCHAR(100...
-項目削除
ALTER TABLE hogetable DROP hogekoumoku;
-長さ変更
ALTER TABLE hogetable MODIFY COLUMN hogekoumoku VARCHAR(...
** 型
|~データ型|~内容|~データ範囲|
|int|4バイト整数|-2147483648~2147483647|
|int unsigned|4バイト整数|0~4294967295|
|bigint|8バイト整数|-9223372036854775808~922337203685477...
|float|不動小数点数|-3.402823466E+38~-1.175494351E-38|
|double|倍精度不動小数点数|-1.7976931348623157E+308~-2.2...
|char( )|固定長文字列|最大長255バイト|
|varchar( )|可変長文字列|最大長255バイト |
|text|可変長文字列|最大長65535バイト|
|date|日付|1000-1-1~9999-12-31|
|datetime|日付時刻|1000-1-1 00:00:00~9999-12-31 23:59:59|
|enum(' ', ' ', ...)|列挙|最大65535個の固有値|
|set(' ', ' ', ...)|リスト|最大64個の要素|
** my.cnf
mysqladmin -u root variables -pで値を確認してからいろいろ...
あとmysql --helpも
-key_buffer=256M~
検索に使われるインデックスをバッファに保存する際のメモリ...
メモリに余裕がある場合増やすとパフォーマンスが向上します。
-table_cache=256~
データのキャッシュサイズです。
値を大きくすることでディスクのI/Oが減りパフォーマンスが向...
-max_allowed_packet=1M~
入力データ保持のための最大バッファサイズです。
画像など、大きなデータ挿入をおこなう際に増やします。
-sort_buffer=1M~
ソートをおこなう際に使用するバッファサイズです。
値を大きくすることでORDER BYやGROUP BYをクエリーに用いた...
-record_buffer=1M~
値を大きくすることでインデックスを含まないクエリーの実行...
-long_query_time=1~
mysqladmin statusコマンドで表示されるSlow queriesにカウン...
-log-slow-queries=ファイル名~
遅いクエリのログの出力先を指定
-join_buffer = 131072~
大量のjoin が発行される場合はjoin_bufferを増やします。
-log=ファイル名~
クエリのログをはきます。SQLの確認や開発の時などに
** ODBC
http://dev.mysql.com/からMySQL Connector/ODBCのGenerally ...
を選択してダウンロードします。
** JDBC
http://dev.mysql.com/downloads/からMySQL Connector/JのGen...
その中にmysql-connector-java-3.1.6-bin.jarがありますので...
org.gjt.mm.mysql.Driver
URLは
jdbc:mysql://hogeserver/hogedb?useUnicode=true&character...
もしくは文字コードによってはSJISにeuc-jpなんですが、これ...
& → &
として、
jdbc:mysql://hogeserver/hogedb?useUnicode=true&chara...
とします。また全角-が化けるとか~が化ける場合は、
jdbc:mysql://hogeserver/hogedb?useUnicode=true&chara...
とします。これはあくまでSJISでDBを作成しており、pageEncod...
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>filters.SetCharacterEncodingFilter</filt...
<init-param>
<param-name>encoding</param-name>
<param-value>MS932</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
としてます。MySQL4.0の場合です。他のバージョンは試してい...
** MySQL Control Center
http://dev.mysql.com/downloads/other/mysqlcc.html
** ダンプ・リストア
mysqldump -F -l hogedb > dump.sql
オプションの-Fはすべてのログをflushします。 -lはREAD LOCA...
mysql hogedb < dump.sql
** mytop
topコマンド風にMySQLの負荷状況がみれます。http://jeremy.z...
tar xzvf mytop-1.4.tar.gz
perl Makefile.PL
おっと
Warning: prerequisite Term::ReadKey 2.1 not found.
とでました。[[CPAN]]を参考にして、
perl -MCPAN -e shell
install Term::ReadKey
再度mytop-1.4.tar.gzを解凍したディレクトリで、
perl Makefile.PL
make
make install
ここでDBD::mysql 1 not found.と出る場合は、上のほうの記述...
mytop -uhogeuser -phogepass -ddatabase -s1
hogeuser,hogepassはユーザ、パスワードです。-dでデータベー...
** チューニング
まず時間がかかっているSQLをEXPLAIN を頭につけて実行します...
table,type,possible_key,key,key_len,ref,rows,Extra
に値が設定されているかと思います。まずkeyが適切に使われて...
んー5にあげてindex_mergeが使われているかどうか調べている...
もしやMyISAMはだめなの?
[[MySQL の最大性能を得る方法は?>http://www.mysql.gr.jp/M...
[[第6章 最適化>http://aqua.sun.ddns.vc/free/docs/mysql5.1...
[[ mysqlを高速化したいときのチューニング方法 >http://it.k...
** バイナリログ
以前からvarの下にマシン名-bin.001とかいうようなファイルが...
RESET MASTER;
もし部分的に消したい場合は、
PURGE MASTER LOGS TO 'machine-bin.005';
として、
SHOW MASTER LOGS;
を見てみると005より小さいバイナリログが削除されます。時間...
PURGE MASTER LOGS BEFORE '2005-01-01 01:01:01';
とすると2005-01-01 01:01:01より古いデータが消されます。
またバイナリログがvarの下にたまってきましたので、場所を変...
log-bin = /usr/local/mysql/binlog/binlog
また
max-binlog-size=256M <=バイナリログの最大ファイルサイズ
expire-log-days=7 <=ログの保持期間
binlog-do-db=dbname <=バイナリログを取るdb
binlog-ignore-db=dbname <=バイナリログを取らないdb
も指定できます。
http://www.softagency.co.jp/mysql/Manual/4.1.1/html-split...
** 移行
別のマシンに同じ環境を作るとき、/usr/local/mysql/varの中...
innodbの場合は、
ib_logfile0
ib_logfile1
ibdata1
もコピーします。~
参考:~
[[7.5.5.3. 複数テーブルスペース - 各テーブルを独自の .ibd...
[[【MySQLウォッチ】第23回 押さえておきたいバックアップと...
** TOOL
MySQL提供の[[MySQL GUI Tools>http://dev.mysql.com/downloa...
他にも[[つみきウェブへ!!>http://www.hi-ho.ne.jp/tsumiki/]...
あれ?[[navicat Lite版>http://www.navicat.jp/mysql/downlo...
** TIPS
***別のDBにコピー
mysqlhotcopy -u root -p hoge dbmoto dbsaki
なぜかDBD-mysql-4.005.tar.gzでは駄目で、DBD-mysql-2.9008....
スペースは空けないといけない。
***PHPが違うsocketを見ているとき
php.iniのmysql.default_socket = "/tmp/mysql.sock"に記述し...
***ERROR 1251: Client does not support authentication pro...
http://dev.mysql.com/doc/mysql/ja/Old_client.htmlから
mysql> UPDATE user SET Password = OLD_PASSWORD('mypass')
-> WHERE Host = 'some_host' AND User = 'some_user';
や
SET PASSWORD FOR hoge@localhost = OLD_PASSWORD('hogepass...
後は
mysql> FLUSH PRIVILEGES;
つまり以前はパスワードのハッシュが、16バイトだったのに4.1...
[mysqld]
old-passwords
としておけばいい。これはどうかと思いますが... もしくはwh...
***SQL実行
mysql -u root -pyourpassword database < hoge.sql
***テーブル最適化
削除を繰り返していると肥大化してくるので、最適化しておき...
optimize table hogetable;
***javaで全角カナのパをlikeでとるとケもとってくる。
dbをujisでやっていると、なぜか、where koumoku like 'パ%'...
***漢字の十で落ちた
文字列に漢字の十がある場合にinsertが失敗しました。この場...
[mysqld]
default-character-set=sjis
[mysql]
default-character-set=sjis
のあたりを見直しましょう。ソ、申などもそれにあたります。
***likeで検索されない
例えば
hoge like '%ほ%'
とかしても検索されない場合があります。そのときは、
hoge like binary '%ほ%'
***1030: Got error 127 from table handler
対象のテーブルが壊れているようなので、
repair table hogetbl;
を実行。チェックだけの場合は、
check table hogetbl;
***ログ
safe_mysqld --log=/var/log/mysql
logオプションで出力したいログファイル名を指定します。
***日付加算
日付を1日koumoku1に加算
koumoku1 + interval "1" DAY
日付を1日5時間koumoku1に加算
koumoku1 + interval "1 5" DAY_HOUR
***java.sql.SQLException: Cannot convert value '0000-00-0...
JDBCで日付のデータを取得しようとしたら、SQLExceptionが投...
参考:[[皆さんの使っているJDBCドライバのバージョン>http:/...
***AUTO_INCREMENTで生成された値の取得方法
last_insert_id()で取得可能
***年月で集計
select date_format(datekoumoku,'%Y-%m') ,count(*) from t...
** 調べ物
[[SQLインジェクションを防ぐプロキシ「GreenSQL」>http://ww...
** リンク
http://www.mysql.gr.jp/ FAQはためになります。~
http://dev.mysql.com/doc/mysql/ja/Upgrading-from-4.0.html...
[[第4章 データベース管理>http://dev.mysql.com/doc/mysql/j...
http://www.atmarkit.co.jp/flinux/rensai/mysql01/mysql01b....
http://www.y-kit.jp/saba/xp/mysqllinuxinst.htm~
http://digibot.jp/tips/linux/004.html~
http://perldoc.jp/docs/modules/DBD-mysql-2.1026/DBD/mysql...
http://tsuttayo.sytes.net/mysql/~
[[MySQLクイック・リファレンス(osCommerce)>http://www.bits...
[[phpMyAdmin]]~
[[MySQLノウハウ>http://txqz.net/blog/2006/12/13/0943]]~
[[【MySQLウォッチ】第14回 サーバー設定を見直してMySQLの性...
[[MySQLクイック・リファレンス>http://www.bitscope.co.jp/t...
** 参考書籍
[[MySQL全機能リファレンス>http://www.amazon.co.jp/exec/ob...
[[実践ハイパフォーマンスMySQL>http://www.amazon.co.jp/exe...
** コメント
-#comment
ページ名: