はじめに
タイトル通りでXamppのMySQLとローカルのMySQLの共存に困ったのでメモです。
※Windows環境です
前提
背景として仕事でXamppのMySQLを使うため設定を弄れない!!
→好きに設定を弄りたいのでローカルにMySQLをいれよう!と思ったのが発端です。
XamppのMySQLの設定(弄れない)
>status Server characterset: utf8 Db characterset: utf8 Client characterset: utf8 Conn. characterset: utf8
👆実はこの設定だとWindowsのターミナルがutf8で入力されない(cp932)ため日本語をINSERTできません。
参考:mysqlで日本語を入力するとテーブル内で文字が表示されない
ローカルにとりあえずMySQLをインストール
仕事で使う設定を弄るわけにはいかないので、別環境を構築します。
公式からMySQLをインストールしてセットアップ。
サービス作成
C:\mysql-5.6.24-winx64\bin > mysqld -install Service successfully installed.
起動
$ net start mysql $ mysql -v Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 12 Server version: 5.6.24 MySQL Community Server (GPL) $ mysql -u root // ログイン可能 >status Server characterset: utf8 Db characterset: utf8 Client characterset: cp932 Conn. characterset: cp932
→これで日本語もターミナルからインサートできるようになりました。
ただし、このままだとXamppが起動できなくなる
👇エラー内容

ためしにportを変えてみるも直らず。。。
どうやらエラーにも書いてあるようにサービスが邪魔している模様。
サービスの名前を変えて作り直す
サービスの確認 参考

👆net startするとここが実行中になります。
コマンドプロンプト(管理者権限)でサービスを削除する。
>sc delete MySQL [SC] DeleteService SUCCESS
サービスを作り直す
>mysqld -install MySQL56

注意:サービス作る際、システム環境変数は以下のようにXamppではなくローカル側にすること。
C:\mysql-5.6.24-winx64\bin
起動
>net start mysql56 MySQL56 サービスを開始します. MySQL56 サービスは正常に開始されました。
同時にMySQLを起動する(ポート番号を変えればOK)
Dockerでポート3306
$ docker-compose up -d mysql nginx Recreating laradock_docker-in-docker_1 ... done Recreating laradock_mysql_1 ... done Recreating laradock_workspace_1 ... done Recreating laradock_php-fpm_1 ... done Recreating laradock_nginx_1 ... done
ローカルは3307
※my.iniのportを3307にするだけ。
>net start mysql56 MySQL56 サービスを開始します. MySQL56 サービスは正常に開始されました。
Xamppは3308
※xampp配下のmy.iniの2か所を修正
[client] # password = your_password port = 3308 socket = "C:/xampp/mysql/mysql.sock" # Here follows entries for some specific programs # The MySQL server [mysqld] port= 3308

確認

👆同時に3つ起動できた◎
※Xamppのphpmyadminが使えなくってしまったので、GUIを使いたい際はWorkbenchで確認する予定です。
※DockerはWorkbenchから弄れない模様で、docker-compose exec mysql bashでコンテナ内に入って操作が必要。
※後日談※
後ほど3306でないと動作しないことが発覚したので戻しました。。。
コメントを残す