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 | +--------------------+