使っている人口がどれくらいいるかわからないですが、 innotop というtopライクにMySQLの状況を表示してくれる便利スクリプトが世の中には存在しています。
日々の覚書: innotopがすごく便利
もともとGoogle Codeにホスティングされてたんだけど、Google
Codeはサービス終了しちゃったから(いつからか知らないけど)GitHubに移行してて、ひょっとしたらこのまま(移行だけしてメンテナンスされなくなって)息を引き取るんじゃないか疑惑が当時から俺の中にあったりなかったり。
原因がそれかどうかは全く知らないけれど、 …
の前に、いくつかMySQLへのContributeの前提を。
MySQLへのコードの寄贈は
1. Oracleプロファイルを持っていないといけない。ダウンロードする時に "No thanks"
に気付かないと作らされるアレ。2. Oracle Contributor Agreement
にサインしないといけない(OCAにサインしたかどうかがOracleプロファイルに紐付けられる…ので、Oracleプロファイルが必要みたい)
が前提になる。
【2016/05/06 23:35】
ちなみにMariaDBの場合も似たようなもので
If you want the code to be part of the main MariaDB tree, you
also have to give the MariaDB Foundation a shared copyright to
your code. This is needed so that the foundation can offer the
code to other projects (like MySQL).
You do this by either:
1. Signing the MariaDB Contributor Agreement …
全然知らなかったんですが、MySQLに「ソケットピア証明書認証プラグイン」というのがあるのを知りました。
http://dev.mysql.com/doc/refman/5.6/ja/socket-authentication-plugin.html
これを使うとOSのログインユーザーと同じ名前のMySQLユーザーであれば、パスワード無しでMySQLに接続することができます。ただしローカルホストでUNIXソケット経由での接続のみ。
試してみます。
% mysql -uroot mysql> INSTALL PLUGIN auth_socket SONAME 'auth_socket.so'; mysql> CREATE USER tommy@localhost IDENTIFIED WITH auth_socket;
% whoami tommy % mysql mysql> SELECT USER(); +-----------------+ | USER() | +-----------------+ | tommy@localhost | +-----------------+
どうやら 5.5.10 …
[さらに読む]
先日は、mysqlxプラグインをMySQL Shellから処理して基本動作確認しました。
mysqlxとMySQL Shell初期設定と基本動作確認
本日は、mysqlxに対応しているConnector/Node.jsからMySQLにJSONデータを処理を確認してみました。
基本的には、JohannesさんがMySQL Server Blogに書いた記事をベースに検証しています。
http://mysqlserverteam.com/mysql-5-7-12-part-5-connectornode-js/
【mysqlxとConnector/Node.jsを利用する為の前提条件】
MySQL 5.7.12 or higher, with the X plugin enabled
Node.JS 4.2
Download …
[さらに読む]
先日、リリースされたMySQL5.7.12に含まれるmysqlxプラグインと、
同時にリリースされた、MySQL Shellの初期設定と基本動作確認を確認してみました。
基本的にこれらは、MySQL5.7で追加されたJSONデータ型を含むスキーマレスなドキュメントデータを、
mysqlxプラグインを利用する事でより柔軟に処理出来るようにする為に追加され、
MySQLをドキュメントデータベースとしてより利用し易くする為に追加された機能となっています。
MySQL Shellは、MySQLサーバの開発と管理をサポートする、
JavaScript、Python、SQLの対話型のインタフェースをサポートするMySQLの新しいコンポーネント。
データのクエリと更新処理だけでなく、様々な管理操作を実行する為にMySQLのシェルを使用することができます。
…
最近、MySQL5.7の形態素解析エンジンのmecabに関して辞書をカスタマイズ出来るかどうか
聞かれる事が増えた為、mecabの辞書をカスタマイズしてきちんと動作確認してみました。
結論としては、問題無くカスタマイズした辞書も利用出来るようです。
但し、MySQLのマニュアルページを見る限り、MySQL
Binaryから提供されているmecab辞書の利用を推奨しているようです。
【以下、抜粋】
Installing MeCab From Source (Optional)
https://dev.mysql.com/doc/refman/5.7/en/fulltext-search-mecab.html
The mecab and mecab-ipadic packages distributed with the MySQL
binary are recommended but
if you want to build mecab and mecab-ipadic from source, basic
installation steps are …
InnoDBの場合。MyISAMは全くアテにならなかった(少なくとも5.7.11では)
InnoDBでも所詮統計情報なので完全にアテになる訳じゃないのはお約束。
テスト。
mysql57> CREATE TABLE t1 (val char(250));[さらに読む]
Query OK, 0 rows affected (0.02 sec)
mysql57> INSERT INTO t1 SET val= '';
Query OK, 1 row affected (0.00 sec)
mysql57> INSERT INTO t1 SELECT * FROM t1;
Query OK, 1 row affected (0.00 sec)
Records: 1 Duplicates: 0 Warnings: 0
..
mysql57> INSERT INTO t1 SELECT * FROM t1;
Query OK, 131072 rows affected (1.67 sec)
Records: 131072 Duplicates: 0 Warnings: 0
ysql57> ANALYZE TABLE t1;
+-------+---------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+-------+---------+----------+----------+
| d1.t1 | analyze | status | OK | …
見直したらほぼ 日々の覚書: MySQL
5.7.4で導入されたdefault_password_lifetimeがじわじわくる(MySQL
5.7.11でFIX!!) に書いてあったんだけど、
@yoku0825 @soudai1025
yumでさくっとバージョン上げた時に、=360のままだった気がしたので、そりゃ確かに勝手に設定値を書き換えたりしないよなと思ったのでした。(勝手に
既定コードを latin1 に書き換えられたら困るのと同じ)— 坂井 恵(SAKAI Kei) (@sakaik)
2016年3月6日
…
タイトルで何を言ってるのか我ながら良くわからない。。
mysql56> SELECT * FROM t1 JOIN t2 USING(num);[さらに読む]
+-----+-------+---------------------+---------------------+--------+---------------------+---------------------+
| num | val | created | updated | val | created | updated |
+-----+-------+---------------------+---------------------+--------+---------------------+---------------------+
| 1 | one | 2016-03-01 15:38:44 | 2016-03-01 15:38:44 | eins | 2016-03-01 15:38:44 | 2016-03-01 16:40:29 |
| 2 | two | 2016-03-01 15:38:44 | 2016-03-01 15:38:44 | zwei | 2016-03-01 15:38:44 | 2016-03-01 16:40:33 |
| 3 | three | 2016-03-01 15:38:44 | 2016-03-01 15:38:44 | drei | 2016-03-01 15:38:44 | 2016-03-01 16:40:36 |
| 4 | four | 2016-03-01 15:38:44 | 2016-03-01 15:38:44 | vier | 2016-03-01 15:38:44 | 2016-03-01 16:40:59 | …
MySQL5.7から追加されたGenerated
Column(生成列)を使って、色々と便利な事が出来るようになりました。
先日、Generated Columnを利用してMySQLの照合順を説明したのでその時に利用した生成列をサンプル兼メモです。
Default: utf8_general_ci or
utf8mb4_general_ciの場合
英語の大文字、小文字は同じ文字として扱う。
root@localhost [CONFIRM]> show create table T_Character\G
*************************** 1. row ***************************
Table: T_Character
Create Table: CREATE TABLE `T_Character` (
`pid` int(10) unsigned NOT NULL AUTO_INCREMENT,
`string1` char(1) DEFAULT NULL,
`string2` char(1) DEFAULT NULL,
`string1_w_string` char(4) GENERATED ALWAYS AS (hex(weight_string(`string1`))) VIRTUAL,
`string2_w_string` char(4) GENERATED ALWAYS AS (hex(weight_string(`string2`))) VIRTUAL,
`compare` char(1) GENERATED ALWAYS AS …[さらに読む]