カテゴリー別アーカイブ: Mysql

Mysqlの正規化に手こずる。

今ではよくみかける、貸し会議室の予約管理システム
みたいなものを作ってます。
カレンダー形式で表示させるやつです。

Mysqlのテーブル構成をどうしたもんかと、ここ2日程いろいろ調べたりしてます。
正規化という部分で躓いてるっぽいです。
作って運用してみて痛い目見ればいろいろ気づくと思うけど、テーブル構成でヘタ打つとダメージがデカそうでびびります。

結構ググってるんですが、自分が作ろうとしてるものそのものズバリのものって、
案外無いもんですね。

CentOSにMysqlをインストールした直後にやること。

CentOSにmysqlをインストールした直後(まだ一度も起動させていない状態)で、

mysqladmin version

と打って、

error: 'Can't connect to local MySQL server through socket ...
...

↑なんちゃらかんちゃらと出るときは、

/etc/rc.d/init.d/mysqld start

を実行する。
そうすると、
mysqladmin version
が実行されるし、
mysql
と打って、mysqlツールに入ることができるようになる。

xamppでapacheのaccess logが300MB超えてたので止めた。

1テキストファイルのくせに300MB超えてました。
まぁEmeditorなら開けましたよ。
という話ではなく、ローカルのaccess logは見ないので、
止めました。

あと、Mysqlがくっそ重かったのをもう耐えられず、
何度かぐぐって、
Mysqlのメモリを4倍位(16MB→64MB)に上げると大分早くなった。
もっと上げてもいいかな。

AUTO_INCREMENTの桁数。

wordpressのauto_incrementの桁数がbigint(20)になっていて、桁数に制限があるのか。。
と思いぐぐってみたらジャストミートな回答があって参考になった。

参考

13桁 => 1兆
17桁 => 1京
21桁 => 1垓

ということでした。
しかしこれ、桁数の上限を設けてなにかメリットあるんですかね。
たぶんあるんでしょうね。それはまた後日調べましょう。

mysql + xampp + windowsでテーブル名を小文字→大文字に変換する方法。

すでに結構有名なトラブルらしくぐぐるとたくさん出てくるけど、
大量のテーブルをwindows上で小文字→大文字に一括変換する方法が見つからなかった。
今回は↓このSQLで変えた。
違う書き方もあるらしい。

まず↓これをやる。

ALTER TABLE hoge RENAME TO hoge2;
ALTER TABLE foo RENAME TO foo2;
ALTER TABLE piyo RENAME TO piyo2;
...
...
...

次に↓これをやる。

ALTER TABLE hoge2 RENAME TO HoGe;
ALTER TABLE foo2 RENAME TO Foo;
ALTER TABLE piyo2 RENAME TO PiYo;
...
...
...

phpmyadminのキャッシュが残ってたのか、他の理由なのか良く分からないけど、
いきなり小文字 → 大文字に変換できなかった気がする。
なので、一度
hoge → hoge2
hoge2 → HoGe
と変換したらうまくいったぽい。

つまり、 HoGe
にしたかったわけです。

phpmyadmin3.5.2でユーザーに権限レベルを設定する方法。

ユーザーと権限のレベルについて。

設定手順。

  1. 「グローバル特権」は「すべてのチェックを外す」。
  2. 「データベースの固有の特権」を設定する。

以上。

これで特定のDBだけ権限を与えられる。

ターミナルでの操作と見た目とか項目とか違うので戸惑った。