目次

mysql


mysql のステータス情報取得

mysqladmin コマンド

# mysqladmin status -p 
Uptime: 12016  Threads: 3  Questions: 305442  Slow queries: 38  Opens: 48 Flush tables: 1  Open tables: 30  Queries per second avg: 25.420
# mysqladmin processlist -p 
+-----+------+-----------+----------+---------+------+-------+------------------ +
| Id  | User | Host      | db       | Command | Time | State | Info             |
+-----+------+-----------+----------+---------+------+-------+------------------ +
| 260 | skk  | localhost | spamblog | Sleep   | 110  |        |                  |
| 408 | skk  | localhost | spamblog | Sleep   | 4    |        |                  |
| 409 | skk  | localhost |          | Query   | 0    |       | show processlist |
+-----+------+-----------+----------+---------+------+-------+------------------+

他のコマンドは、mysqladmin -help 参照。

mysql コマンドの日本語

% mysql -u skk -p 
mysql> use DATABASENAME;
mysql> set NAMES ujis; (EUCにしたい場合)

時間のかかるクエリーをログしておきたい。

# vi /usr/local/etc/my.cnf
[mysqld] (この欄に追加)
long_query_time=3
log-slow-queries=/var/log/mysql-slow.log
# mysql restart (システム依存)

新規データベース作成

% mysql -u root -p
mysql> create database hoge;
Query OK, ...

バックアップ/リストア

// バックアップ
% mysqladmin --all-databases > filename.sql 
// リストア
% mysql < filename.sql

この後,一度 mysql を再起動しないと,ユーザ情報が反映されず,ログインできないかも.

update

update <table name> set sales=500 where store_name = "los angels" and date = 'jan-08-1999'; 
update <table name> set key1=value1, key2=value2 where <条件>

インデックスに関して

後からインデックスを貼る場合 [2022-09-13]

alter table table_hoge add index column_index (column) 
[mysqld]
character-set-server=utf8mb4
key_buffer_size = 384M

テーブルへのカラムの追加

mysql> alter table amp add unixtime int unsigned; 

mysql のステータス情報に関して

perl でのアクセス方法