mysql 4.1.8 anchor.png Edit

→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;

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Counter: 841, today: 1, yesterday: 0
最終更新: 2008-12-02 (火) 16:34:27 (JST) (1265d) by aqua
オススメ

おすすめ
カレンダ
前月2012年 5月翌月
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
<今日>
ログイン
ユーザ名:

パスワード:



パスワード紛失

新規登録
天気予報

資料提供天気予報コム
アクセスカウンタ
今日 : 161161161
昨日 : 577577577
総計 : 363715363715363715363715363715363715