XAMPPへ乗り換え(MySQL)

XAMPPのインストール編
の続き

○MySQLの移行

まずは新しい環境の、
MySQLのadminパスワードの設定を実施。
https://www.adminweb.jp/xampp/mysql/index2.html

既存のデータベースをエクスポート
→新しい環境へインポート
https://qiita.com/miyazawa_shi/items/bb440e8041ac8df2ebb7
→エクスポートの時点でエラー出る
(エラーメッセージ)

解決法:mysql.iniの”no-beep”をコメントアウトする
https://stackoverflow.com/questions/14210769/mysqldump-unknown-option-no-beep

“no-beep”自体は、コマンド間違えた時とかに、
ビープ音が発生しないようにする設定。
それが”mysqldump”実行時に悪さをしていたみたい。

●移行したい対象

  • 自分で作成したデータベース
  • ユーザーデータ(ユーザー・ホスト・権限)
  • 自分で作成したデータベースについては、
    普通に移行できると思うけど、
    (問題なく移行完了)

    ユーザーデータって、”mysql”データベースに保存されてるから、
    そのまま入れてしまってもいいものだろうか?

    いろいろググってみた結果、わからなかったので、
    思い切ってやってみる。
    →新環境のMySQLが起動しなくなりました。

    一応、新環境の”mysql”データベースは、
    バックアップのつもりでエクスポートしておいたんですが、
    起動すらしないので入れ直しようがない。
    データをバックアップしとけばよかったですねw
    (後で気づいたけど、”backup”フォルダにデータのバックアップがあったw)

    インストールし直し。
    で、もう一回、自作のデータベースをインポート。
    &ユーザー情報は改めて手動で作成。

    各ユーザーのパスワードは、
    使ってたphpファイルに書いてあったのでそれを見ながらw
    もっとうまくやる方法ないかな?

    で、とりあえずApacheは既存のもの、
    MySQLは新しい環境を起動して、
    それぞれのユーザーでDBアクセスするphpプログラムが動くことを確認。

    データの移行完了。

    旧MySQLサービスは、
    アンインストールしなくても新環境が起動するので、
    そのままでいいや。

    ただし、環境変数”Path”は、
    新環境のbinフォルダに書き換えておく。
    (コマンドプロンプトで操作する時用)

    ●おまけ

    新環境のMariaDBには、
    “test”というデータベースがデフォルトで存在し、
    全てのユーザーが閲覧、編集できるようになっている。

    僕は今まで使っていたMySQLで、
    “test”というデータベース名でいろいろいじったりしていたので、
    移行時にデフォルトのものをdropしてからインポートしたが、
    全てのユーザーが閲覧、編集できる設定のままだった。

    例えば、phpuser(“phptest”データベースにのみアクセス権付与)でログインすると、

    MariaDB [(none)]> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | phptest            |
    | test               |
    +--------------------+
    

    なので、”test”データベースをいじるユーザー以外、
    アクセスできないようにする。

    “mysql”データベース内、”db”テーブル。

    MariaDB [mysql]> select Host,Db,User,Select_priv,Insert_priv from db;
    +-----------+------------+----------+-------------+-------------+
    | Host      | Db         | User     | Select_priv | Insert_priv |
    +-----------+------------+----------+-------------+-------------+
    | %         | test       |          | Y           | Y           |
    | %         | test\_%    |          | Y           | Y           |
    | localhost | phpmyadmin | pma      | Y           | Y           |
    ~~(中略)~~
    | localhost | phptest    | phpuser  | Y           | Y           |
    | localhost | test       | testuser | Y           | Y           |
    +-----------+------------+----------+-------------+-------------+
    

    こんな感じであったので、上2行を削除。

    MariaDB [mysql]> delete from db where user='';
    Query OK, 2 rows affected (0.01 sec)
    
    MariaDB [mysql]> select Host,Db,User,Select_priv,Insert_priv from db;
    +-----------+------------+----------+-------------+-------------+
    | Host      | Db         | User     | Select_priv | Insert_priv |
    +-----------+------------+----------+-------------+-------------+
    | localhost | phpmyadmin | pma      | Y           | Y           |
    ~~(中略)~~
    | localhost | phptest    | phpuser  | Y           | Y           |
    | localhost | test       | testuser | Y           | Y           |
    +-----------+------------+----------+-------------+-------------+
    

    して、MariaDBを再起動。

    MariaDB [(none)]> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | phptest            |
    +--------------------+
    

    関連する記事

    XAMPPのインストール編
    Apacheの移行編

    コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です