mysql_config_editor set --login-path=local --host=localhost --user=username --password mysql --login-path=local -e "statement"
環境変数MYSQL_PWDを使います。
gem install mysql2 -- --with-mysql-lib=/usr/local/Cellar/mysql/5.6.10/lib --with-mysql-dir=/usr/local/Cellar/mysql/5.6.10 --with-mysql-config=/usr/local/Cellar/mysql/5.6.10/bin/mysql_config --with-mysql-include=/usr/local/Cellar/mysql/5.6.10/include
mysqldump -u root -p -x --all-databases > dump.sql
mysql --defaults-file=<( printf '[client]\npassword=%s\n' ${DBPASSWORD} ) -u ${DBUSER} ${DBNAME} /bin/shだと多分エラーになるのでbashで。
GRANT SELECT, LOCK TABLES, SHOW VIEW ON `db_name` . * TO 'user'@192.168.0.200';
iciqlの特徴は以下のとおり。 ・単一のjarで提供される ・設定ファイルなしで使える ・DBからモデル生成できるツール付き
CREATE TABLE `test` ( name varchar(10) , modified_date timestamp NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, create_date timestamp NOT NULL default '0000-00-00 00:00:00', ) INSERT INTO test ( name , create_date ) VALUES ( 'foo' , NULL );
current_timestamp を設定できるのは1カラムだけ
delimiter $$ create procedure select_or_insert() begin IF EXISTS (select * from users where username = 'something') THEN update users set id= 'some' where username = 'something'; ELSE insert into users (username) values ('something'); END IF; end $$ delimiter ;
アップグレードした新しい MySQL のシステムとの互換性が保たれているかチェックし、おかしければ修正するコマンドとのこと
それほどDBに詳しくないアプリエンジニアが何かトラブった時にすぐさま行動して問題把握できるようになる情報を列挙しておきます。
環境にもよりますが、MySQLのデフォルトのメモリ関連の設定は控えめな感じになっています(私のCentOS環境では、 key_buffer_sizeが8M,innodb_buffer_pool_sizeも8Mとなっています)ので、適切な状態への変更が必要です。
今回はスレッド数が多すぎたので max_connections を 151ー>31 と設定しました。
MySQLメモリ設定を変更しました。設定項目は抜粋になります。備忘録として記載しておきます。
MySQLで使用する全体的なメモリ使用量を計算するには グローバルバッファ + (スレッドバッファ × コネクション数) = メモリ使用量 という計算式に当てはめればいいことになります。
innodb_buffer_pool_size - デフォルトは128M。これは、メモリにロードされるデータとインデックスのためにInnoDBがどのくらい メモリを使うかを指定するものなので、設定すべき重要な値だ。
よく「サーバの全メモリの50%から70%くらい」とか「80%」くらいとか言われますが、それはどちらかというとスワップしないための 限界値を示すものであって、理想値ではないですよね。それでいろいろ調べてみたところ、なかなか日本語で良いまとめがなかったので、 ここでまとめてみようと思います。
innodb_buffer_pool_size InnoDBのデータやインデックスをキャッシュするためのメモリ上の領域です。 グローバルバッファなので、どかんと割り当ててください。