ラベル mysql の投稿を表示しています。 すべての投稿を表示
ラベル mysql の投稿を表示しています。 すべての投稿を表示

2013年5月1日水曜日

MySQLにおけるテーブル名の大文字/小文字区別しなくように変更

MySQLのシステム変数にlower_case_table_namesというものがあり、

UNIX系OSだと"0"が、Windows系だと"1"がデフォルトになってる

==================================================================
lower_case_table_names
------------------------------------------------------------------
データベース名とテーブル名をすべて小文字として
扱うか否か。

"1"ならば、すべて小文字として扱う。
"0"ならば、大文字/小文字を区別する。(←UNIX系デフォルト)
==================================================================

2013年4月25日木曜日

mysql dump 構造だけ

mysqldump -uroot -p -d testDb > /tmp/testDb.sql


実際のデータは要らなくてテーブル構造だけをdumpしたい場合は-dオプションをつければOK


mysql 複数テーブルロックをかける

lock table A,B write;

注意点:
LOCK TABLES の使用時には、使用するテーブルをすべてロックし、またクエリで使用するエイリアスと同じ名前を使用する必要があります。1 つのクエリで同じテーブルを何度も指定する(エイリアスを使用して)場合は、各エイリアスに対してロックを取得しなければなりません。

2013年3月26日火曜日

mysql リモートアクセス 許可設定

1.my.ini修正

[mysqld]
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
language        = /usr/share/mysql/English
bind-address    = 65.55.55.2
# skip-networking
....
..
....
2.mysql> CREATE DATABASE foo;
mysql> GRANT ALL ON foo.* TO bar@'202.54.10.20' IDENTIFIED BY 'PASSWORD';

3.3306ポート空く
/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT
最後ログインできるはず
$ mysql -u webadmin –h 65.55.55.2 –p
You can also use the telnet or nc command to connect to port 3306 for testing purpose:
$ echo X | telnet -e X 65.55.55.2 3306
OR
$ nc -z -w1 65.55.55.2 3306
Sample outputs:
Connection to 65.55.55.2 3306 port [tcp/mysql] succeeded!
参考URL

2013年2月13日水曜日

mysql Inner Join、Left join, Right Join使い分け

a INNER JOIN b ON 結合条件
→a と b、両方にあるものを結合

a LEFT [OUTER] JOIN b ON 結合条件
→a と b 両方にあるものに加え、a にあり b にないものは、nullで結合

a RIGHT [OUTER] JOIN b ON 結合条件
→a と b 両方にあるものに加え、b にあり a にないものは、nullで結合

a FULL [OUTER] JOIN b ON 結合条件
→a と b 両方にあるものに加え、a にあり b にないものは、nullで結合。b にあり a にないものは、nullで結合

2013年1月30日水曜日

ERROR 1 (HY000): Can't create/write to file '/tmp/user.data' (Errcode: 2)

 select * from user into outfile "/tmp/user.data" fields terminated by ',';
でテーブルのデータをバックアップをしようとしたら、こんなエラーが、

ERROR 1 (HY000): Can't create/write to file '/tmp/user.data' (Errcode: 2)

調べた結果、権限の問題

chown root:root /tmp
  chmod 1777 /tmp
  /etc/init.d/mysqld restart