ユーザ用ツール

サイト用ツール


mysql

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
mysql [2018/07/11 00:19] – [mysql_upgrade] nullponmysql [2024/01/18 01:41] (現在) – [DDLクエリが終わらない] nullpon
行 3: 行 3:
   * [[http://dev.mysql.com/doc/refman/5.1/ja/index.html|MySQL 5.1リファレンスマニュアル]]   * [[http://dev.mysql.com/doc/refman/5.1/ja/index.html|MySQL 5.1リファレンスマニュアル]]
  
-ネットの情報は間違いも多い。鵜呑みにせず公式のマニュアルで確認すること。公式サイトオライリーの書籍(実践ハイパフォーマンス等)はほぼ無条件で信用してもいいだろう。もちろんこ情報鵜呑しないこときちんとマニュア調べての情報はマニュアル掲載されている。+ネットの情報は間違いも多い。鵜呑みにせず公式のマニュアルで確認すること。もちろんこのページの情報も鵜呑みにしないこと。きちんとマニュアルで調べる。すべての情報はマニュアルに掲載されている。公式サイト以外でもオライリーの書籍(実践ハイパフォーマンス等)はほぼ無条件で信用してもいいだろう。 
 + 
 +===== DDLクエリが終わらない ===== 
 + 
 +alter tableがなかなか終わらない場合、プロセスリストを見てみよう 
 + 
 +<code> 
 +show processlist 
 + 
 +or  
 + 
 +show full processlist 
 +</code> 
 + 
 +''Waiting for table metadata lock''と出ている場合は、他プロセスが該当のテブルにトランザクションを開いているためDDLがロックされている状態。 
 + 
 +ありがちなはGUIのデータベースクライアントツールがトランザクションを張っているケース(例えばDBeaverはテーブルを開くだけでトランザクションを作成する)。アプリを閉じましょう 
 + 
 +===== readonlyが効かない ===== 
 + 
 +<code> 
 +set global read_only = 1;  
 +</code> 
 + 
 +を実行して書き込できてまう。 
 + 
 +super権限を持っているユーザにはread_onlyは効かない。セキリティ上の観点からもプリからはsuper権限を持たないユーザ接続すのをオススメる。 
 +===== rootログインできない! ===== 
 + 
 +Ubuntu 18.08 + MySQL 5.7で発生。 
 + 
 +認証方法がauth_socketとなっおり、OSrootユーザのみMySQLのrootユーザでログイン可能な設定にされている。なので sudo すればOK 
 + 
 +    sudo mysql -u root 
 + 
 +認証方法を以前と同じ(mysql_native_password)に変更するには 
 + 
 +<code> 
 +$ sudo mysql -u root  
 +mysql> use mysql; 
 +mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'パスワード;     
 +</code> 
 + 
 +なお、認証方法がauth_socketの状態では ''sudo mysql_secure_installation'' を実行してrootパスワード設定しても反映されなかったので、上記手順で認証方法を変更する必要があった。 
 + 
 +==== パスワード要件 ==== 
 + 
 +5.7以降、デフォルトのパスワード要件がmedium policyとなっており、 
 + 
 +  * パスワードが最低 1 つの数値文字を含み、1 つの小文字および大文字を含み、1 つの特殊文字 (英数字以外) を含む 
 +  * 長さ8文字以上 
 + 
 +でないと設定できない。 
  
 ===== データ無いのに非常に遅い ===== ===== データ無いのに非常に遅い =====
行 423: 行 476:
  
 Fulltextインデックスは再構築にも時間がかかるしメンテナンスが死ぬほどめんどくさいのでオススメしない。他の全文検索ライブラリを併用するのがいいだろう。 Fulltextインデックスは再構築にも時間がかかるしメンテナンスが死ぬほどめんどくさいのでオススメしない。他の全文検索ライブラリを併用するのがいいだろう。
 +
 +
 +===== JSON型カラム =====
 +
 +JSONフィールドの値で検索する
 +
 +<code sql>
 +where colName->'$.id' = 1 
 +
 +where JSON_EXTRACT(colName, '$.id') = 1
 +</code>
 +
mysql.1531268358.txt.gz · 最終更新: 2018/07/11 00:19 by nullpon