フォノクラフト株式会社:作業メモや備忘録など » MySQL http://121.50.42.205/note 作業メモや備忘録など... Fri, 05 Jul 2013 05:17:27 +0000 ja hourly 1 http://wordpress.org/?v=3.1.3 [sql] SQL文で特定のテーブルをリネームしてコピーする【MySQL】 http://121.50.42.205/note/sql-sql%e6%96%87%e3%81%a7%e7%89%b9%e5%ae%9a%e3%81%ae%e3%83%86%e3%83%bc%e3%83%96%e3%83%ab%e3%82%92%e3%83%aa%e3%83%8d%e3%83%bc%e3%83%a0%e3%81%97%e3%81%a6%e3%82%b3%e3%83%94%e3%83%bc%e3%81%99%e3%82%8b_1812 http://121.50.42.205/note/sql-sql%e6%96%87%e3%81%a7%e7%89%b9%e5%ae%9a%e3%81%ae%e3%83%86%e3%83%bc%e3%83%96%e3%83%ab%e3%82%92%e3%83%aa%e3%83%8d%e3%83%bc%e3%83%a0%e3%81%97%e3%81%a6%e3%82%b3%e3%83%94%e3%83%bc%e3%81%99%e3%82%8b_1812#comments Tue, 16 Apr 2013 09:35:27 +0000 admin http://phono.co.jp/note/?p=1812 バックアップ用途に使うことが多いかな、と。

SQL文

CREATE TABLE コピー先のテーブル名 AS SELECT * FROM コピーしたいテーブル名;

記述例

CREATE TABLE copy_db_20140101 AS SELECT * FROM copy_db;

]]>
http://121.50.42.205/note/sql-sql%e6%96%87%e3%81%a7%e7%89%b9%e5%ae%9a%e3%81%ae%e3%83%86%e3%83%bc%e3%83%96%e3%83%ab%e3%82%92%e3%83%aa%e3%83%8d%e3%83%bc%e3%83%a0%e3%81%97%e3%81%a6%e3%82%b3%e3%83%94%e3%83%bc%e3%81%99%e3%82%8b_1812/feed 0
[phpMyAdmin] 空のセルを抽出する http://121.50.42.205/note/phpmyadmin-%e7%a9%ba%e3%81%ae%e3%82%bb%e3%83%ab%e3%82%92%e6%8a%bd%e5%87%ba%e3%81%99%e3%82%8b_1568 http://121.50.42.205/note/phpmyadmin-%e7%a9%ba%e3%81%ae%e3%82%bb%e3%83%ab%e3%82%92%e6%8a%bd%e5%87%ba%e3%81%99%e3%82%8b_1568#comments Thu, 27 Sep 2012 02:22:27 +0000 admin http://phono.co.jp/note/?p=1568 「検索」から

REGEXP = 正規表現で〜が入っていれば

NOT REGEXP = 正規表現で〜が入っていなければ

実用編

小難しい正規表現を使わなくても、全角の判定なら以下である程度いけます。

  1. 全角記号
     [、-◯]
  2. 全角かな・漢字
     [ぁ-ヶ]|[亜-煕](※Shift_JISの場合)
  3. 全角かな・漢字
     [ぁ-ヶ]|[一-龠](※UTF-8 の場合)
  4. ]]> http://121.50.42.205/note/phpmyadmin-%e7%a9%ba%e3%81%ae%e3%82%bb%e3%83%ab%e3%82%92%e6%8a%bd%e5%87%ba%e3%81%99%e3%82%8b_1568/feed 0 [sql] SQL文で特定のフィールド(カラム)内の文字列を一括置換する【MySQL】 http://121.50.42.205/note/sql%e6%96%87%e3%81%a7%e7%89%b9%e5%ae%9a%e3%81%ae%e3%83%95%e3%82%a3%e3%83%bc%e3%83%ab%e3%83%89%ef%bc%88%e3%82%ab%e3%83%a9%e3%83%a0%ef%bc%89%e5%86%85%e3%81%ae%e6%96%87%e5%ad%97%e5%88%97%e3%82%92_1541 http://121.50.42.205/note/sql%e6%96%87%e3%81%a7%e7%89%b9%e5%ae%9a%e3%81%ae%e3%83%95%e3%82%a3%e3%83%bc%e3%83%ab%e3%83%89%ef%bc%88%e3%82%ab%e3%83%a9%e3%83%a0%ef%bc%89%e5%86%85%e3%81%ae%e6%96%87%e5%ad%97%e5%88%97%e3%82%92_1541#comments Tue, 14 Aug 2012 09:03:30 +0000 admin http://phono.co.jp/note/?p=1541 SQL文
    UPDATE `テーブル名` SET フィールド名A=REPLACE (フィールド名A,"置換前の文字列","置換後の文字列");
    

    記述例

    UPDATE `dtb_customer` SET uname=REPLACE (uname,"山田","鈴木");
    

    ]]>
    http://121.50.42.205/note/sql%e6%96%87%e3%81%a7%e7%89%b9%e5%ae%9a%e3%81%ae%e3%83%95%e3%82%a3%e3%83%bc%e3%83%ab%e3%83%89%ef%bc%88%e3%82%ab%e3%83%a9%e3%83%a0%ef%bc%89%e5%86%85%e3%81%ae%e6%96%87%e5%ad%97%e5%88%97%e3%82%92_1541/feed 0
    [sql] SQL文でテーブル名の変更する【MySQL】 http://121.50.42.205/note/sql-%e3%83%86%e3%83%bc%e3%83%96%e3%83%ab%e5%90%8d%e3%81%ae%e5%a4%89%e6%9b%b4%e3%81%99%e3%82%8b_1552 http://121.50.42.205/note/sql-%e3%83%86%e3%83%bc%e3%83%96%e3%83%ab%e5%90%8d%e3%81%ae%e5%a4%89%e6%9b%b4%e3%81%99%e3%82%8b_1552#comments Tue, 14 Aug 2012 07:10:38 +0000 admin http://phono.co.jp/note/?p=1552 SQL文
    ALTER TABLE 現在のテーブル名 RENAME TO 変更後のテーブル名;
    
    ]]>
    http://121.50.42.205/note/sql-%e3%83%86%e3%83%bc%e3%83%96%e3%83%ab%e5%90%8d%e3%81%ae%e5%a4%89%e6%9b%b4%e3%81%99%e3%82%8b_1552/feed 0
    [wp] wordpressを丸ごと移管/移行させる手順 http://121.50.42.205/note/wp-wordpress%e3%82%92%e4%b8%b8%e3%81%94%e3%81%a8%e7%a7%bb%e7%ae%a1%e3%81%95%e3%81%9b%e3%82%8b%e6%89%8b%e9%a0%86_1256 http://121.50.42.205/note/wp-wordpress%e3%82%92%e4%b8%b8%e3%81%94%e3%81%a8%e7%a7%bb%e7%ae%a1%e3%81%95%e3%81%9b%e3%82%8b%e6%89%8b%e9%a0%86_1256#comments Thu, 19 Apr 2012 06:29:08 +0000 admin http://phono.co.jp/note/?p=1256 お引越ししないといけなくなりまして・・・

    とある理由でwordpressを丸ごと別のサーバに移管したり乗り換えたり、つまりお引越をさせないといけない場面は多々あります。既に稼働しているwordpressをスムーズに移行させるには下記の手順がベストです。カテゴリやプラグイン等々の再設定も行う必要ないので楽に移行できます。

    wordpress移行前の準備、旧サーバから必要なファイルを揃える

    1:旧サーバデータベースを丸ごとエクスポートする

    phpMyAdmin等からwordpressが入ってるDBを丸ごとダンプしておく。
    (※右図はphpMyAdminのエクスポート画面)

    2:旧サーバからファイル一式をダウンロードする

    FTP等でwordpress関連のファイル全てをダウンロードしておく。

    新サーバにwordpress移行する手順

    3:新サーバにファイルを丸ごとアップロードする

    旧サーバからダウンロードしたwordpress関連のファイル一式を新サーバの任意のディレクトリにアップロードし、必要に応じて /wp-contents/uploads/ や /wp-contents/cache/ などパーミッションの変更が必要なディレクトリは777等に変更する。
    (サーバによって数値は変わります)。

    4:MySQLデータベースを作成する

    新サーバで新規にMySQLデータベースを作成する。

    6:wordpressの設定ファイルの必要な情報を変更する

    /wp-config.php をDB作成時に設定したDBネームやパスワード、ホスト等に変更します。(下記の箇所)

    /** WordPress のデータベース名 */
    define('DB_NAME', '○○○○');
    /** MySQL のユーザー名 */
    define('DB_USER', '○○○○');
    /** MySQL のパスワード */
    define('DB_PASSWORD', '○○○○');
    /** MySQL のホスト名 (ほとんどの場合変更する必要はありません。) */
    define('DB_HOST', '○○○○');
    

    7:wordpress管理画面に接続出来ているかを確認する

    ブラウザからwordpressのトップページを参照し、インストール画面が出てくれば接続は出来ています。

    8:旧サーバのDBからエクスポート(ダンプ)したデータを丸ごとインポートする

    インポートにはphpMyAdminやNavicat等のツールを使うと便利。
    (右図はphpMyAdminのインポート画面)

    9:wordpress管理画面のログインID/パスワードを変更する

    インポート出来たら『wp_user』テーブルのadmin権限のパスワードを変更します。(右図参照)

    変更するカラムはadmin権限のユーザで下記の2カラムです。
    『user_pass』カラム を $P$B9f/Y7GWy4FzX5uuccAbvJxWDGVdHl0に変更。
    (パスワード adminadminでログイン出来る様になります)
    『user_email』カラムを 任意のメールアドレスに変更。

    詳しくは割愛しますが $P$B9f/Y7GWy4FzX5uuccAbvJxWDGVdHl0 という謎の文字列でパスワード adminadmin でログイン出来る様になっています。

    この変更は前任者と管理が変わる場合は特にに重要になります。

    10:wordpressのURLを変更する

    『wp_options』テーブルの『option_name』→『siteurl」に記載されているURLを新サーバのURLに変更します。
    テスト段階ですのでテスト専用のURLがあると思います。それを入れておきますが、新サーバにDNSを切り替えた際にはここを再度変更します。

    11:wordpressトップページを参照して無事に旧サーバと同じ状態で表示されているか確認する

    ブラウザからwordpressのトップページを参照して確認します。
    この段階ではインストール画面が表示されたり、エラーが出ていたりする場合はDBの見直しが必要です。

    12:wordpress管理画面にログイン出来るか確認する

    ログインID『admin』、パスワード『adminadmin』でログイン出来るか確認する。

    13:投稿出来るか確認する

    管理画面にログインできたら、特に画像のアップロードなど確認しましょう。

    ついでにadmin権限のパスワードが『adminadmin』になっているので変更しておきましょう。

    基本的には以上ですが下記に補足を。。

    記事内のリンクURLを直す

    記事内の画像リンクが絶対パスで指定されてい場合が多くあるので右図のプラグイン「Search Regex」を使って一括置換してあげましょう。

    プラグイン:Search Regex

    ※「Regex」にチェックを入れる事で正規表現が使えます。

    実作業ではwordpress全データをDBにインポートする前に全置換してしまう方が早いですが、こういったメンテナンス系のプラグインを使うというのも一つの手もはあります。

    またはSQL文を使って置換する事も出来ます。

    SQL文

    UPDATE `テーブル名` SET フィールド名A=REPLACE (フィールド名A,"置換前の文字列","置換後の文字列");
    

    記述例

    ・テーブル名:dtb_customer
    ・フィールド名:uname
    ・置換前の文字列:山田
    ・置換後の文字列:鈴木

    UPDATE `dtb_customer` SET uname=REPLACE (uname,"山田","鈴木");
    

    ]]>
    http://121.50.42.205/note/wp-wordpress%e3%82%92%e4%b8%b8%e3%81%94%e3%81%a8%e7%a7%bb%e7%ae%a1%e3%81%95%e3%81%9b%e3%82%8b%e6%89%8b%e9%a0%86_1256/feed 0
    [ec-cube] 顧客情報、受注情報をインポートした際の注意点 http://121.50.42.205/note/ec-cube-%e9%a1%a7%e5%ae%a2%e6%83%85%e5%a0%b1%e3%82%92%e3%82%a4%e3%83%b3%e3%83%9d%e3%83%bc%e3%83%88%e3%81%97%e3%81%9f%e9%9a%9b%e3%81%ae%e6%b3%a8%e6%84%8f%e7%82%b9_1198 http://121.50.42.205/note/ec-cube-%e9%a1%a7%e5%ae%a2%e6%83%85%e5%a0%b1%e3%82%92%e3%82%a4%e3%83%b3%e3%83%9d%e3%83%bc%e3%83%88%e3%81%97%e3%81%9f%e9%9a%9b%e3%81%ae%e6%b3%a8%e6%84%8f%e7%82%b9_1198#comments Mon, 02 Apr 2012 22:01:16 +0000 admin http://phono.co.jp/note/?p=1198 顧客情報のインポート

    INSERT構文等を用いて顧客情報をインポートした場合、一見正常に登録されたように見えるが、
    会員登録の完了画面でエラーが出て登録出来ない症状が起こる。

    これはテーブル『dtb_customer』に対してだけインポートを行った事で
    シーケンス値がずれてしまっているのが原因なので、
    テーブル『dtb_customer_customer_id_seq』のシーケンス値を最大値に設定し直してあげる事で解決する。

    例えば、
    『dtb_customer』の customer_id の最大値が 37だった場合、
    『dtb_customer_customer_id_seq』の sequence も37以上に設定し直す。

    受注情報のインポート

    上記同様『dtb_order』『dtb_order_detail』にインポートした際にも、

    テーブル『dtb_order_detail_order_detail_id_seq』は order_detail_id 、
    テーブル『dtb_order_order_id_seq』は order_id のシーケンス値を最大値に設定し直す。

    シーケンス値の設定を怠った際のエラー内容

    /data/logs/site.log より

    〜上略〜
    SQL: PREPARE mdb2_statement_mysql_(セッションID)
    FROM 'INSERT INTO dtb_customer(name01,name02,kana01,kana02,zip01,zip02,pref,addr01,addr02,tel01,tel02,tel03,
    password,reminder_answer,reminder,sex,job,mailmaga_flg,fax01,fax02,fax03,email,birth,status,secret_key,point,
    update_date,salt,customer_id,create_date) 
    VALUES 
    (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,Now(),?,?,Now())'
    
    MDB2 Error: constraint violation
    
    _doQuery: [Error message: Could not execute statement]
    [Last executed query: EXECUTE mdb2_statement_mysql_(セッションID) USING @0, @1, @2, @3, @4, @5, @6, @7, @8, @9, @10, @11, @12, @13, @14, @15, @16, @17, @18, @19, @20, @21, @22, @23, @24, @25, @26, @27]
    [Native code: 1062]
    [Native message: Duplicate entry '14' for key 'PRIMARY']
    〜下略〜
    
    ]]>
    http://121.50.42.205/note/ec-cube-%e9%a1%a7%e5%ae%a2%e6%83%85%e5%a0%b1%e3%82%92%e3%82%a4%e3%83%b3%e3%83%9d%e3%83%bc%e3%83%88%e3%81%97%e3%81%9f%e9%9a%9b%e3%81%ae%e6%b3%a8%e6%84%8f%e7%82%b9_1198/feed 0
    [WP]インストール前から気をつけること(セキュリティ的観点から) http://121.50.42.205/note/wp%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e5%89%8d%e3%81%ab%e6%b0%97%e3%82%92%e3%81%a4%e3%81%91%e3%82%8b%e4%ba%8b%ef%bc%88%e3%82%bb%e3%82%ad%e3%83%a5%e3%83%aa%e3%83%86%e3%82%a3_385 http://121.50.42.205/note/wp%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e5%89%8d%e3%81%ab%e6%b0%97%e3%82%92%e3%81%a4%e3%81%91%e3%82%8b%e4%ba%8b%ef%bc%88%e3%82%bb%e3%82%ad%e3%83%a5%e3%83%aa%e3%83%86%e3%82%a3_385#comments Mon, 25 Jul 2011 07:55:09 +0000 admin http://phono.co.jp/note/?p=385 前置き

    wordpressのセキュリティレベルを少しでもを上げる為に、インストール前に確認しておきたいこと。
    特にDBのプレフィックスなど後から変更しにくいものもあるので事前に意識しておく。

    何れも“気休め”程度にしかならないかも知れない。
    しかし1%でもセキュリティレベルが上がれば…と願いつつ。

    確認項目

    1.インストール時に気をつけること

    1. 必ず最新のwordpressで構築する(※1)
    2. DBのプレフィックス(Prefix)をデフォルトの「wp_」から乱数などに変更する
    3. 管理者名を「admin」のままにしない
    4. 管理者パスワードは乱数などの「複雑なもの」にする

    ※1:
    使い慣れた、または有用なプラグインが最新バージョンに対応していないので最新版が使えない…といった場合もあるが、極力最新版を使う様に心がけたい

    2.インストール直後に行っておくこと

    1. /wp-admin ディレクトリ直下に ベーシック認証(.htaccess/.htpasswd)を設定する
    2. /wp-config.php にセキュリティキーを設定する
    3. /wp-config.php や /.htaccess はパーミッションを444(Read Only)にしておく
    4. セキュリティ関連のプラグイン『Secure WordPress』等を入れておく(下記参照)
    5. プラグイン『Akismet』を有効にしておく(WordPress.comでAPI keyを取得する)
    6. デフォルトのサンプル固定ページとコメントは削除(メッセンジャー云々、ゴッサム云々、という固定ページ….)

    3.運用中に行うこと、心がけること

    1. 可能な限り新しいバージョンのWordPressを更新しつづける
    2. 定期的にDBやwordpress本体のバックアップを取っておく
    3. プラグイン『admin-ip-watcher』から送られてくるメールを注視する

    4.その他(ガンプラー対策も含めて)

    1. FTP接続ではなく、FTPS(FTP-SSL )やSFTPで接続する
    2. FTPクライアント『FFFTP』は使用しない(SFTPに対応していない、また攻撃されやすい為)
    3. 可能な限りWindows以外のOSで作業する(ウィルスに感染しにくい為)

    もしファイル改ざんされてしまったら、真っ先に行う事

    まず発見した時点で

    1. 解決する迄、一時的にサイトをクローズする(訪問者に被害が及ぶ可能性が高い為)

    次に

    1. WordPressを最新のバージョンにアップデートする
    2. プラグイン等の関係でアップデートが無理ならばgrep等で「base64」というキーワードでwordpress全体を検索し該当箇所を潰す。htmlファイルには妙なJSが埋め込まれていることがある。.htaccessにも妙な埋め込みもある。他にphp自体の改ざん等いろいろある。。。。)
    3. 管理画面などのパスワードを変更する

    wordpressセキュリティに関する、有益なサイト

    ]]>
    http://121.50.42.205/note/wp%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e5%89%8d%e3%81%ab%e6%b0%97%e3%82%92%e3%81%a4%e3%81%91%e3%82%8b%e4%ba%8b%ef%bc%88%e3%82%bb%e3%82%ad%e3%83%a5%e3%83%aa%e3%83%86%e3%82%a3_385/feed 0