mysql

MySQLでテストデータを大量に生成する方法

各種FWのテストデータ生成ライブラリを使うのもいいけど、この方法もよい。 qiita.com

MySQLにパスワード無しでログインする

ただし、絶対に開発環境などセキュリティが担保されているところで利用してね。 my.cnfに次のように設定する。 [mysqld] skip-grant-tables sudo systemctl restart mysql などでMySQLを再起動させる。

MySQL8でユーザーを作成して全ての権限を付与する

バージョン間の差異なのかうまくいかないことが多いのでまとめておく。 mysql> create user 'your-user'@'%' identified by 'your-password'; Query OK, 0 rows affected (0.01 sec) mysql> create database `your-db-name`; Query OK, 1 row affected (0.01…

データがあればUPDATE。なければINSERTの「INSERT ... ON DUPLICATE KEY UPDATE 構文」

MySQLで、データが存在する場合は更新を行い、存在しない場合にのみ登録を行いたい場合には、「INSERT ... ON DUPLICATE KEY UPDATE 構文」を利用する。 今回は、サンプルとして複数データを一度に登録する場合である所謂Bulk Insertのサンプルを掲載してお…

MySQL(MariaDB)で既存のテーブルからCREATE文を作成する方法

既に存在するテーブルと同じスキーマのテーブルを作成したいときがある。 その場合、以下のコマンドを実行する。なお、当たり前であるが、既存のテーブルが存在するDB上から実行する。 SHOW CREATE TABLE テーブル名 例 mysql> SHOW CREATE TABLE sessions \…

Mysqlで50音検索(あ行で始まるレコードを検索する)

検索できるのに50音検索なんて必要なのか? という疑問を抱きつつも、やってみたら意外に面倒だったのでメモしておく。 あ行 SELECT * FROM table WHERE name REGEXP '^(あ|い|う|え|お|ア|イ|ウ|エ|オ)+'; 英数字 SELECT * FROM table WHERE name REGEXP '^…

InnoDBの破損とリカバリ方法

原因の確認 MySQLが起動しなくなった。"/var/log/mysql/error.log"を確認したら、DBが正常にシャットダウンしなかったために、InnoDBが壊れったっぽい。 141122 21:00:54 InnoDB: Database was not shut down normally! InnoDB: Starting crash recovery. In…

カラムの文字コード変更

MySQLは、データベース、テーブル、カラムそれぞれに文字コードが設定可能。カラムに文字コードが指定してある場合、これを変更するには、下記コマンドを実行する。 ALTER TABLE t MODIFY col varchar(255) CHARACTER SET utf8; 変更されたかどうかは、下記…

OS X Marvericks

OS X Marvericksにアップグレードして一番困ったのは、MySQLとPostgreSQLが起動しなくなったこと。とりあえず、データだけでも何とかして取り出したい。 MySQLの場合 $ sudo /opt/local/bin/mysqld_safe5これで起動するはずなので、いつもどおり、mysqldump…

mysqldumpで一行ずつのINSERT文を吐き出したい

デフォルトだと複数行INSERTによって高速にINSERT可能なのだが、場合によっては一行一行INSERTさせたいときがある。 mysqldump -c --skip-extended-insert > dump.sql --extended-insert複数のVALUESリストを含む、複数行INSERT構文を使用してください。これ…

リモートのMySQLをGUIで管理する(MySQL Query Browser + SSHトンネリング編)

管理画面作るのめんどくさい。でもターミナルでSQLをいちいち書くのも面倒。でも、データベースを外部接続可能にするのは問題外というのは多いと思います。そんな時にphpMyAdminを使うのも手でしょうが、インストールするのも面倒だし、UIもあまり好きになれ…

「デフォルトのキャラクタセットおよび照合順序の指定」

本日は、MySQLのリファレンスマニュアル 9.3 の学習。「デフォルトのキャラクタセットおよび照合順序の指定」について。 サーバ、データベース、テーブル、カラムの 4 段階で、キャラクタセットと照合順序のデフォルト設定が用意されています。 MySQL :: MyS…

キャラクタセットと照合順序について

キャラクタセットとは、シンボルとエンコードのセットです。照合順序とは、キャラクタセット内の文字を比較するためのルールを集めたものです。 MySQL :: MySQL 5.6 リファレンスマニュアル :: 10.1.1 一般の文字セットおよび照合順序 ‘A’ = 0、‘B’ = 1、‘a’…

MySQLで利用してはいけないカラム

・項目名に「key」と言う名前を指定すると MySQL ではエラーになる。見事にはまりましたorz

MySQL個人メモ

Import and Outport Data. SELECT * FROM INTO OUTFILE 'c:/home/example.txt' [FIELDS TERMINATED BY ','] FROM tables; LOAD DATA INFILE 'c:/home/example.txt' INTO TABLE tables [FIELDS TERMINATED BY ','];