mysql 4.1.8
→solaris編はこちら
以下のサイトよりファイルをダウンロード
http://www.mysql.com/
# cd /usr/local/arch # wget http://dev.mysql.com/get/...4.0.22.tar.gz/from/.../mysql/ # cd ../src # tar xvzf ../arch/mysql-4.0.22.tar.gz # cd mysql-4.0.22 # ./configure --with-charset=ujis \ > --with-extra-charsets=all \ > --with-mysqld-user=mysql \ > --prefix=/usr/local/mysql # make # make install
- 設定
# groupadd mysql # useradd -g mysql -d /export/home/mysql -m -s /usr/local/bin/bash mysql # cd /usr/local/mysql # mkdir var # chown -R root:mysql . # chown -R mysql var # vi /etc/my.cnf
[mysqld]に追加
default-character-set = ujis thread_concurrency = 4 skip-networking max_connections = 200
mysqlの最大コネクション数はデフォルトで100。
phpを使用する場合についての注意はこちら
。
[mysql]に追加
default-character-set = ujis
[mysqldump]に追加
default-character-set = ujis
# bin/mysql_install_db --user=mysql
# bin/mysqld_safe --user=mysql &
# bin/mysqlshow
# bin/mysql -u root
mysql> use mysql
mysql> set password for root@localhost=password('YOURPASSWORD');
mysql> delete from user where password='';
mysql> delete from db;
mysql> drop database test;
mysql> create database NEWDB;
mysql> grant all on NEWDB.* to admin@localhost identified by 'password';
mysql> grant all on NEWDB.* to admin@'192.168.0.%' identified by 'password';
mysql> grant all on NEWDB.* to admin@'%.domain.com' identified by 'password';
mysql> exit
# bin/mysqladmin -u root shutdown
# share/mysql/mysql.server start
# share/mysql/mysql.server stop※パスワード変更方法
mysql> set password for admin@localhost=password('NEWPASSWORD');
mysql> set password for admin@'192.168.0.%'=password('NEWPASSWORD');
mysql> set password for admin@'%.domain.com'=password('NEWPASSWORD');- コマンド
セッション情報を確認する。
mysql> status
データベース一覧を表示する。
mysql> show databases;
テーブル一覧を表示する。
mysql> show tables;
テーブルのステータス一覧を表示する。
mysql> show table status;
カラム情報を表示する。
mysql> show columns from table_name;
インデックス情報を表示する。
mysql> show index from table_name;
接続中のプロセス一覧を表示する。
mysql> show processlist;
初期パラメータ一覧を表示する。
mysql> show variables;
その他
mysql> show innodb status; mysql> show open tables;
- 日付型
| date | 日付 |
| time | 時刻 |
| datetime | 日付時刻 |
| timestamp | 日付時刻 |
timestampはDEFAULT or ON UPDATE時にcurrent_timestampが入る。マイグレーション等の更新でもUPDATEされてしまうことを考慮すると、使用には注意が必要である。
現在時刻の表示は
mysql> select sysdate(); mysql> select now(); mysql> select current_date; mysql> select current_time; mysql> select current_timestamp;
日付型のフォーマット変更は
mysql> select date_format(sysdate(),'%Y/%m/%d-%H:%d:%s');
日付型の増減は
mysql> select date_add(sysdate(),interval -1 day);
- 連番(sequence)
mysql> create table test(id int auto_increment);
sequenceはinsertするまで振られない為、insert後にsequenceを参照する場合は
mysql> select last_insert_id();
- JDBC
TOMCATによるJDBCはローカル接続ではないみたいで、以下2つの設定が必要。
- my.cnfよりskip-networkingの設定を外す。
- 接続するDBユーザーにuser@ns.domain.comからの接続を許可する。
grant all on test.* to user@ns.domain.com identified by 'PASSWORD';
- INDEX
- INDEXの作成
mysql> CREATE INDEX i01 ON test_data(reg_date,parent_id);
- INDEXの削除
mysql> DROP INDEX i01 ON test_data;
- 実行計画
mysql> explain
-> select count(*)
-> from test_data
-> where reg_date>date_add(current_timestamp,interval -1 hour)
-> order by reg_date descレコード件数がゼロ件だと以下のようなエラーが出る。
1件以上のレコードを返すクエリーに修正する。
+-----------------------------------------------------+ | Comment | +-----------------------------------------------------+ | Impossible WHERE noticed after reading const tables | +-----------------------------------------------------+
- テーブル名変更
mysql> rename table before_table to after_table;
- MyISAMテーブルのサイズ上限超え
mysql> create table test_data
> (id int primary key,text text)
> max_rows=10000000 type=myisam;- バックアップ関連
$ mysqldump -u root -p -A > mysql.dmp $ mysqldump -u root -p NEWDB > newdb.dmp $ mysql -u root -p NEWDB< newdb.dmp
CREATE文なし
$ mysqldump -uroot -p -t newdb user_data > insert_user_data.sql
複数DB
$ mysqldump -uroot -p -B db1 db2 db3 db4 > dbs.dmp
gzipしつつ
$ mysqldump -uroot -p NEWDB | gzip > newdb.gz $ gzip -dc newdb.gz | mysql NEWDB
- 変数の使用方法
mysql> set @d0:=36; mysql> select @d0;
- 共有メモリサイズの算出
innodb_buffer_pool_size + key_buffer_size + max_connections*(sort_buffer_size+read_buffer_size+binlog_cache_size) + max_connections*2MB
- レプリ関連
mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
- other/wiki (291d) [ WikiのTips ]
Counter: 841,
today: 1,
yesterday: 0
最終更新: 2008-12-02 (火) 16:34:27 (JST) (1265d) by aqua
