ユーザー認証
MySQLでは、UNIXとは関係ない独立したID/パスワードを用いる。
デフォルトではunixユーザー@localhostが使われる。
mysql -u root
などとする。
Access denied for userと表示された場合は、パスワードを指定する必要があるかもしれない。この場合は、-pオプションを使う。
mysql -u root -p
Enter password:
ユーザーの管理はmysql.userを使って行われているので、
mysql -uroot mysql
mysql>select * from user;
などで設定が見られる。
カラムを追加・削除する
alter table TABLE add column COLUMN_NAME char(1) not null default 'y';
alter table TABLE drop column COLUMN_NAME;
addなのにremoveではない。変なの。
データをファイルに出力したい。
select * from item into OUTFILE "dump.dat"
select * from item order by indate into outfile "/tmp/dump2.dat"
または、SQL文として出力するには、mysqldumpコマンドが使える。
% mysqldump DBNAME TABLE1 TABLE2 ...
ファイルからデーターの読み込み
LOAD DATA INFILE 'file' INTO TABLE table_name
ファイルはタブ区切りにしておく。変更することもできるが、LOAD DATA文にパラメーター指定が必要になる。
コメント
MySQL依存でよければ、次のものが使える。
# comment
/* comment */
-- comment
リモートマシンからのアクセス制限
データベースmysqlのuserテーブルに適切なレコードを追加すればよい。
データベースの一覧が見たい。
show databases;
テーブルの一覧が見たい。
show tables;
テーブルの構造が見たい。
describe pet;
テーブルを作成したい。
create table TABLENAME (FIELDNAME char(32), FIELD2 mediumint(9), primary key (FIELD2))
テーブルが存在しないときだけテーブルを作成するには、create table if not exists TABLENAME ...とする。
テーブルを削除したい。
drop table TABLENAME
データベースを作成したい
特権ユーザーでログインし、次のSQL文を実行する。
create database TABLENAME
今使っているデータベースを見たい。
select database();
その他メモ
LinuxにおけるMySQLの最大テーブルサイズは、2G。