1169 件中 1 - 10 件を表示
次の 10 件 »
Displaying posts with tag: MySQL (reset)
MySQL 5.6のmysqldumpでMySQL 5.7のサーバーに接続してダンプを取ろうとするとコア吐く件

TL;DR

  • MySQL 5.7.12とそれ以降のmysqldumpなら大丈夫
  • 実はバージョン依存ではなく sql_mode=ONLY_FULL_GROUP_BY 依存

別のものを調べている時に /var/log/messages を見てたら、なんかがコア吐いてるのに気が付いた。

Jun 20 04:26:42 archive_host kernel: mysqldump[28611]: segfault at 0 ip 00000030b152859a sp 00007fffd760a358 error 4 in libc-2.12.so[30b1400000+18b000]
Jun 20 04:26:42 archive_host abrtd: Directory 'ccpp-2017-06-20-04:26:42-28611' creation detected
Jun 20 04:26:42 archive_host abrt[28613]: Saved core dump of pid 28611 (/data01/mysqlbin/mysql-5.6.20-linux-glibc2.5-x86_64/bin/mysqldump) to /var/spool/abrt/ccpp-2017-06-20-04:26:42-28611 (2609152 …
[さらに読む]
MySQLの日本語コレーション

4月にMySQLの日本語コレーションについて語り合う場に呼ばれていろいろ話を聞いてきました。すぐにブログを書こうと思ったんですが、はや2ヶ月経過…。

ときどき、自分がMySQLの文字コードに関して発表する際に、次のようなスライドをいれてるんですが、

MySQL 8.0 でとうとう日本語コレーションが入ることになったのに、なんか期待してたのと違いました。

で、その辺の話を聞きました(2ヶ月も経ってるのでうろ覚え)。

Q. わざわざ日本語ロケール作るんだったら日本人が扱いやすいロケールにしてほしい

[さらに読む]
MySQL Group Replication間のレプリケーション

MySQL Group Replicationは、グループで一つのIDを持つ為、通常のシングルインスタンスと同じようにレプリケーションを組む事が出来ます。4月のInnoDB Clusterリリース以降、MySQLを利用されているお客様から、幾つか質問を受けていたので念の為に挙動を再確認。

環境
複数サーバーを準備出来なかったので,シングサーバーにポートを変更して、2グループ(6サーバー)で先ずはGROUP REPLICATIONを準備。

mysql> select @@version;
+-------------------------------------------+
| @@version                                 |
+-------------------------------------------+
| 5.7.18-enterprise-commercial-advanced-log |
+-------------------------------------------+
1 row in set (0.00 sec)

[さらに読む]
MySQL 5.7が何も言わずに起動できなかったのでメモ

MySQL 5.6と同じ方法でMySQL 5.7を起動しようとしたら何も言わずに黙って終了してしまって少しだけハマったのでメモ。

MySQL 5.6では次のようにして起動してました。

# /usr/local/mysql-5.6/bin/mysqld --no-defaults --user=mysql
  --basedir=/usr/local/mysql-5.6 --skip-networking --socket=/tmp/mysql56.sock
  --log-error=/tmp/my56.err > /tmp/my56.err 2>&1

log-error をつけていても、最初の数行が標準エラー出力に出ちゃうので、log-error と同じファイルにリダイレクトするようにしていました。

同じようにしてMySQL 5.7を起動してみたら、すぐに終了してしまって、しかもエラーを何も出力しません。

# /usr/local/mysql-5.7/bin/mysqld --no-defaults --user=mysql
  --basedir=/usr/local/mysql-5.7 --skip-networking --socket=/tmp/mysql57.sock
  --log-error=/tmp/my57.err > …
[さらに読む]
MySQL Router2.1とInnoDB Clusterの挙動

InnoDB Clusterを構築すると、MySQL Routerの設定ファイルが自動的に作成されます。基本的にはTTLによって構成はキャッシュされますが、metadata cache componentが常にMySQLに接続していて、Group Replicationの状況をモニタリングしています。それにより、構成変更や障害発生時には自動的に検知してアプリケーションを適切なデータベースに振り分けてくれます。

【以下、マニュアル抜粋】
MySQL Router keeps a cached list of the online MySQL servers, or the topology and state of the configured InnoDB cluster. Initially, the list is loaded from Router’s configuration file when Router is started. This list was generated with InnoDB cluster servers when Router was bootstrapped using the –bootstrap option.

To keep the cache updated, the metadata cache component keeps an open connection to one of …

[さらに読む]
NEW JSON FUNCTIONS in MySQL8.0

MySQL5.7で約20程のJSON関数が追加されていましたが、MySQL8.0においても更に追加でJSON関数が加えられているので、基本的な動作のみを確認しています。JSON_ARRAYAGG(), JSON_OBJECTAGG(),JSON_PRETTY()

MySQL5.7 JSON関数マニュアル
https://dev.mysql.com/doc/refman/5.7/en/json-functions.html

MySQL5.7のJSONの概要に関しては、こちらにて資料がダウンロード可能です。https://www.mysql.com/jp/why-mysql/presentations/mysql-json-201701-ja/

まだ、MySQL8.0はDMRなので、これからまだ仕様が変わる部分がある事はご了承ください。

確認バージョン


mysql> select now(),@@version; …
[さらに読む]
よく使うストアドプロシジャ。とりあえず件数。

こんなん使ってます。

-- [前提となるテーブル]
DROP TABLE IF EXISTS t1;
CREATE TABLE t1(i1 int not null primary key, v2 varchar(20)) engine = innodb;

-- [利用するストアドプロシジャ2: 1万件ごとにコミット処理あり]
drop procedure if exists test_insert_commit;
delimiter $
create procedure test_insert_commit(v_max int)
begin
declare v_id int default 0;
repeat
set v_id = v_id + 1;
insert into t1 values(v_id, v_id);
if (mod(v_id,10000) = 0) then commit;
end if;
until v_id >= v_max
end repeat;
end$
delimiter ;

JUGEMテーマ:コンピュータ



MySQLのSELECT .. FOR UPDATEはREPEATABLE-READでも直近にコミットされたレコードを返す

TL;DR

ドキュメント探してみたけどほんのちょっとだけしか書いてないような気がする。 SELECT … LOCK IN SHARE MODE は、 これらの行のいずれかがコミットされていない別のトランザクションによって変更された場合、クエリーはそのトランザクションが終了するまで待機してから、最新の値を使用します。 …

[さらに読む]
MySQL Group Replicationにてauto_incrementの値を変更

InnoDB Clusterの設定を行い、Group ReplicationはシングルマスターモードがDefaultなので、
Auto_Incrementの値も普段使いなれている値の1に設定し直して利用する事にしました。

Note: InnoDB Cluster = MySQL Group Replication + MySQL Router + MySQL Shell

もし、Group Replicationをシングルマスターモードで利用する予定の場合は、
実際にサーバーの初期設定時の段階で予め変更しておくと良いかと思います。
マルチマスターモードの場合は、ぶつからないように設定しておく必要があるので、
先ずは、Default設定の7で利用するのが良いでしょう。

念の為、構成がシングルマスターモードになっているか確認
Confirm is Group Replication configured as Single Master Mode.


mysql> show variables like …
[さらに読む]
MySQLユーザ会会 in 長野 2017に参加してきましたよ

MySQLユーザ会会 in 長野 2017に逝ってきました! 開催の経緯とかはとみたさんのブログ MySQLユーザ会会 in 長野 を開催しました - @tmtms のメモ 、当日のふいんき(何故か変換できない)はTogetter MySQLユーザ会会 in 長野 2017 - Togetterまとめ がまとまってます。 セッションの内容は坂井さんMySQLとはみたいなことやると聞いていたし、かじやまさんは「MySQL …

[さらに読む]
1169 件中 1 - 10 件を表示
次の 10 件 »