回答編集履歴

3 加筆修正

m6u

m6u score 14568

2017/04/14 10:36  投稿

[MySQL :: MySQL 5.6 リファレンスマニュアル :: 13.3.5 LOCK TABLES および UNLOCK TABLES 構文](https://dev.mysql.com/doc/refman/5.6/ja/lock-tables.html)
ロックを保持しているセッションからだけ書き込めるってことなので、
$mysqlからの書き込みはできるけど
```
$sql = "lock tables DB1 write, DB2 write";
$mysql->query($sql);
```
でDB1もDB2も書き込みロックを$mysqlが持っちゃっているので$mysqlからの書き込みはできるけど
$mysql2を別セッションと捉えているのならば書き込めずフリーズするのは当たり前になりますよね。
サーバーでは問題なく動くってのは、
テーブルの作成方法やデータベースの構築方法、
あるいはMYSQLバージョンの違いなどがないか点検してみては。
2 加筆修正

m6u

m6u score 14568

2017/04/14 10:29  投稿

[MySQL :: MySQL 5.6 リファレンスマニュアル :: 13.3.5 LOCK TABLES および UNLOCK TABLES 構文](https://dev.mysql.com/doc/refman/5.6/ja/lock-tables.html)
ロックを保持しているセッションからだけ書き込めるってことなので、
$mysqlからの書き込みはできるけど
$mysql2を別セッションと捉えているのならば書き込めずフリーズするのは当たり前になりますよね。
サーバーでは問題なく動くってのは、
テーブルの作成方法やデータベースの構築方法、
あるいはバージョンの違いなどがないか点検してみては。
あるいはMYSQLバージョンの違いなどがないか点検してみては。
1 加筆修正

m6u

m6u score 14568

2017/04/14 10:27  投稿

[MySQL :: MySQL 5.6 リファレンスマニュアル :: 13.3.5 LOCK TABLES および UNLOCK TABLES 構文](https://dev.mysql.com/doc/refman/5.6/ja/lock-tables.html)
ロックを保持しているセッションからだけ書き込めるってことなので、
$mysql2を別セッションと捉えているのならば書き込めずフリーズするのは当たり前になりますよね。
$mysqlからの書き込みはできるけど
$mysql2を別セッションと捉えているのならば書き込めずフリーズするのは当たり前になりますよね。
サーバーでは問題なく動くってのは、
テーブルの作成方法やデータベースの構築方法、
あるいはバージョンの違いなどがないか点検してみては。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る