MySQL
学習書籍・・・現場で使える MySQL
アマゾンの評判が良いのを見てもわかる通りです。
たまたまRubyの本を買いに行った時に目にとまり、内容が「DB管理者向け」に書かれているので、買いました。
もちろん、導入するエンジニアも基礎ベースから学べます。
たいへんオススメの1冊です。
MySQLは、開発者向けとか、PHP本にごちゃ混ぜにした内容の書籍が多いので、手元に1冊持っておくと良いですね、この本は。
データ投入方法の、バルクinsertや、load dataももちろん、出ています。
load dataコマンドを使う時の、サーバー上 or クライアント上でのコマンドの違いも出ています。
DBAとしての機能は、15章にまとまってますので、
ここは、全て理解しておきたいところです。
●参考
load data local infile 'D:/24.csv' into table serifs fields terminated by ',' enclosed by '"' lines terminated by '\r\n' (serif_number,family_name,given_name,furigana,serif,season);
※既存のレコードは、削除されない。
最新MySQLは5.1.32(2009/3/9時点) http://www.mysql.com/
MySQL・・・インストール直後のログイン
①mysql
②mysql -u root
show databases; すると、表示されるDBが違うのがわかる。
information_schema
mysql
test
①で接続すると、anonymous接続なので、mysqlデータベースは見えなくなっている(=>重要なDBなので、見せないようになっている)。
ここで、use mysql してもいいが・・・。
desc mysql.user; mysqlのデフォルトユーザーアカウントに関する情報がわかる。
※show fields from mysql.user; でも良いが。
select Host,User,Password,Select_priv,Insert_priv from mysql.user;
MySQL・・・既存ユーザーの削除(要注意)
開発段階では、そのままにしていることが多いようですが、管理運用面を考慮し、最初から本番設定をきちっと理解する上でも、このアカウントの削除、追加はきちんとやっておくべき内容だと思います。
でないと、ログインできないー、とか本番前に大騒ぎすることになりかねませんし。
mysql> truncate table mysql.user;
flush privileges;
mysql> grant all privileges on *.* to 'root@localhost' identified by '1234' with
grant option;
mysql> select Host,User,Password,Select_priv,Insert_priv from mysql.user;
※Passwordが、そのまま表示されないようになっています。
MySQL・・・ユーザー作成
grant all privileges on db1.* to user1 identified by '1234';
create databases db1; 事前にdb1というデータベースを作成済。
MySQL・・・rootでログイン
mysql -u root@localhost -p
(参考)mysql -u root -p では、ログインできません。
現在の状態は、下記です。
MySQL・・・user1でログイン
mysql -u user1 -p
MySQL・・・データベースdb1に、「sql文入力ファイル」よりテーブル作成を行う
C:\Program Files\Apache Group\Apache2\htdocs\samples\chapter14\14-3> mysql < my_2 4member.sql -u root@localhost -p db1Enter password: ****
MySQL・・・データベースdb1に、「sql文入力ファイル」よりテーブル作成を行う
mysql < my_24member.sql -u root@localhost -p db1
mysql < DROP_my_24member.sql -u root@localhost -p db1
DBを指定して接続している例です。
MySQL・・・文字コード
文字コードは、ややこしいところです。
でも、押さえるポイントは限られています。
my.ini :default-character-set=utf8 (58行目付近)
MySQLの日本語処理に関しては、上で紹介している「現場で使える MySQL」のP110~P138は必読。
バージョンごとの文字コードサポート状況や、コード変換の仕組み(P112の図6.1)を必読です。
・サーバー文字コードとは何か?
・クライアント文字コードとは、何か?
・列←テーブル←データベース←インスタンス
指定していないと、「大きい存在」の文字コードを使う。
※感覚的に、当たり前ですね。
何も気にしないなら、インスタンスの文字コードだけ設定すればOK。
MySQL・・・ローカルから接続
TCP/IPではなく、ソケットファイルというファイルを1つだけ使用する。
socket=/tmp/mysql.sock などと指定される(できる)。
mysqlに接続する時に直接指定も可能。(わざわざ、しませんけど。ついでにWindowsで指定不用)
MySQL・・・ローカルから接続

