はじめに
タイトル通りで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
※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で確認する予定です。