XamppのMySQLとローカルのMySQLを共存させるためにしたこと+Docker

はじめに

タイトル通りで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でないと動作しないことが発覚したので戻しました。。。

コメントを残す