カテゴリー: mysql

  • wsl linux にインストールした mariadb にwindows側から接続する手順

    wsl linux にインストールした mariadb にwindows側から接続する手順

    wsl linux にインストールした mariadb にwindows側から接続する手順

    GitHub Copilot: Windows側からWSL上のLinux MintにインストールされたMariaDBに接続するには、以下の手順を実行してください。


    1. WSL上のMariaDBの設定を確認

    MariaDBがWSL上で動作していることを確認し、外部接続を許可する設定を行います。

    MariaDBの設定ファイルを編集

    MariaDBの設定ファイル(通常は/etc/mysql/my.cnfまたは/etc/mysql/mariadb.conf.d/50-server.cnf)を編集します。

    sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

    以下の設定を確認・変更してください:

    # ...existing code...
    bind-address = 0.0.0.0  # 127.0.0.1 を 0.0.0.0 に変更
    # ...existing code...

    これにより、MariaDBが外部からの接続を受け付けるようになります。

    MariaDBを再起動

    設定を反映させるためにMariaDBを再起動します。

    sudo systemctl restart mariadb

    2. Windows側からWSLのIPアドレスを確認

    WSLのIPアドレスを確認します。以下のコマンドをWSLのターミナルで実行してください。

    ip addr | grep inet

    inetの後に表示されるIPアドレス(例: 172.20.0.2)をメモします。


    3. MariaDBユーザーの権限を設定

    MariaDBにログインし、Windows側から接続できるようにユーザーの権限を設定します。

    sudo mysql -u root -p

    以下のコマンドを実行して、外部接続を許可するユーザーを作成または設定します。

    CREATE USER 'username'@'%' IDENTIFIED BY 'password';
    GRANT ALL PRIVILEGES ON *.* TO 'username'@'%';
    FLUSH PRIVILEGES;
    • username: 接続に使用するユーザー名
    • password: 接続に使用するパスワード

    4. Windows側でMariaDBクライアントをインストール

    Windows側にMariaDBクライアント(例えば、HeidiSQLやMySQL Workbench)をインストールします。


    5. Windows側から接続

    MariaDBクライアントを開き、以下の情報を入力して接続します:

    • ホスト名: WSLのIPアドレス(例: 172.20.0.2
    • ユーザー名: MariaDBで設定したユーザー名(例: username
    • パスワード: MariaDBで設定したパスワード(例: password
    • ポート: 3306(デフォルトのMariaDBポート)

    注意点

    • WSLのIPアドレスは再起動すると変わる可能性があります。その場合は再度確認してください。
    • ファイアウォールやセキュリティソフトが接続をブロックしていないか確認してください。

    これでWindows側からWSL上のMariaDBに接続できるはずです。

    shimimane: PS Microsoft.PowerShell.Core\FileSystem::\wsl.localhost\Mint\var\www\html> ip addr | grep inet
    ip: The term ‘ip’ is not recognized as a name of a cmdlet, function, script file, or executable program.
    Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

    Suggestion [4,General]: The most similar commands are:
    PS Microsoft.PowerShell.Core\FileSystem::\wsl.localhost\Mint\var\www\html>

    GitHub Copilot: PowerShellではWSLのコマンドを直接実行するには、wslコマンドを使用する必要があります。以下の手順でWSL内のIPアドレスを確認してください。


    1. WSL内でip addrを実行する

    PowerShellからWSLのコマンドを実行するには、以下のようにwslコマンドを使います。

    wsl ip addr | grep inet

    これにより、WSL内のネットワークインターフェースのIPアドレスが表示されます。


    2. IPアドレスを確認する

    出力の中で、inetの後に表示されるIPアドレスを探してください。例えば:

    inet 172.20.0.2/24 ...

    この場合、172.20.0.2がWSLのIPアドレスです。


    3. WSLに直接ログインして確認する方法

    もしPowerShellからの実行がうまくいかない場合、WSLに直接ログインして確認することもできます。

    wsl

    WSLにログインした後、以下のコマンドを実行します:

    ip addr | grep inet

    4. Windows側から接続する準備

    取得したIPアドレスを使用して、Windows側のMariaDBクライアントで接続を試みてください。

    shimimane: PS Microsoft.PowerShell.Core\FileSystem::\wsl.localhost\Mint\var\www\html> wsl ip addr | grep inet
    grep: The term ‘grep’ is not recognized as a name of a cmdlet, function, script file, or executable program.
    Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
    PS Microsoft.PowerShell.Core\FileSystem::\wsl.localhost\Mint\var\www\html>

    GitHub Copilot: PowerShellではgrepコマンドが使用できないため、代わりにPowerShellのフィルタリング機能を使うか、WSL内で直接コマンドを実行してください。


    方法1: PowerShellでフィルタリングする

    以下のコマンドを使用して、ip addrの出力をフィルタリングします。

    wsl ip addr | Select-String -Pattern "inet"

    これにより、inetを含む行が表示されます。


    方法2: WSL内で直接確認する

    PowerShellからWSLにログインして、WSL内でコマンドを実行します。

    wsl

    WSLにログインした後、以下のコマンドを実行します:

    ip addr | grep inet

    方法3: PowerShellで全出力を確認する

    もしフィルタリングが不要であれば、以下のコマンドで全出力を確認できます。

    wsl ip addr

    出力の中で、inetの後に表示されるIPアドレスを探してください。


    これでWSLのIPアドレスを確認できるはずです。

    shimimane: PS Microsoft.PowerShell.Core\FileSystem::\wsl.localhost\Mint\var\www\html> wsl ip addr | Select-String -Pattern “inet”
    <3>WSL (8) ERROR: CreateProcessParseCommon:717: Failed to translate \wsl.localhost\Mint\var\www\html

    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
    inet 172.25.209.34/20 brd 172.25.223.255 scope global eth0
    inet6 fe80::215:5dff:fed7:546b/64 scope link

    PS Microsoft.PowerShell.Core\FileSystem::\wsl.localhost\Mint\var\www\html>

    GitHub Copilot: 出力を見ると、WSLのネットワークインターフェースeth0に割り当てられたIPアドレスが確認できます。

    以下の情報が重要です:

    • WSLのIPアドレス: 172.25.209.34
      このIPアドレスを使用してWindows側からMariaDBに接続できます。

    次の手順

    1. MariaDBの設定確認:
      WSL内でMariaDBの設定ファイルを編集し、bind-address0.0.0.0に設定して外部接続を許可していることを確認してください。
       sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

    必要に応じてMariaDBを再起動します:

       sudo systemctl restart mariadb
    1. Windows側から接続:
      MariaDBクライアント(例: HeidiSQLやMySQL Workbench)を使用して以下の情報を入力します:
    • ホスト名: 172.25.209.34
    • ユーザー名: MariaDBで設定したユーザー名
    • パスワード: MariaDBで設定したパスワード
    • ポート: 3306

    これで接続できるはずです。もし接続できない場合は、WSLのファイアウォールやMariaDBの設定を再確認してください。

    shimimane: windowsgawakara

    GitHub Copilot: Windows側からWSL上のMariaDBに接続する手順を以下にまとめます。


    1. WSLのIPアドレスを確認

    WSL内で以下のコマンドを実行してIPアドレスを確認します。

    ip addr | grep inet

    出力例:

    inet 172.25.209.34/20 brd 172.25.223.255 scope global eth0

    この場合、172.25.209.34がWSLのIPアドレスです。


    2. MariaDBの設定を確認

    WSL内でMariaDBの設定ファイルを編集し、外部接続を許可します。

    sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

    以下の行を確認・変更します:

    bind-address = 0.0.0.0

    変更後、MariaDBを再起動します:

    sudo systemctl restart mariadb

    3. MariaDBユーザーの権限を設定

    MariaDBにログインし、外部接続を許可するユーザーを作成します。

    sudo mysql -u root -p

    以下のSQLコマンドを実行します:

    CREATE USER 'username'@'%' IDENTIFIED BY 'password';
    GRANT ALL PRIVILEGES ON *.* TO 'username'@'%';
    FLUSH PRIVILEGES;

    4. Windows側でMariaDBクライアントを使用

    Windows側でMariaDBクライアント(例: HeidiSQLやMySQL Workbench)をインストールし、以下の情報を入力して接続します:

    • ホスト名: WSLのIPアドレス(例: 172.25.209.34
    • ユーザー名: MariaDBで設定したユーザー名(例: username
    • パスワード: MariaDBで設定したパスワード(例: password
    • ポート: 3306(デフォルトのMariaDBポート)

    注意点

    • WSLのIPアドレスは再起動すると変わる可能性があります。その場合は再度確認してください。
    • ファイアウォールやセキュリティソフトが接続をブロックしていないか確認してください。

    これでWindows側からWSL上のMariaDBに接続できるはずです。

    shimimane: powershell からmysql 172.25.209.34 を使用するコマンド

    GitHub Copilot: PowerShellからWSL上のMariaDB(MySQL)に接続するには、以下の手順を実行します。


    1. MySQLクライアントをインストール

    まず、Windows側にMySQLクライアントをインストールする必要があります。以下のリンクからインストールしてください:

    インストール後、mysql.exeがコマンドラインで使用可能になります。


    2. PowerShellから接続するコマンド

    以下のコマンドをPowerShellで実行してMariaDBに接続します:

    mysql -h 172.25.209.34 -u username -p
    • -h 172.25.209.34: WSLのIPアドレス
    • -u username: MariaDBで設定したユーザー名
    • -p: パスワードを入力するプロンプトを表示

    コマンドを実行すると、パスワードの入力を求められます。正しいパスワードを入力するとMariaDBに接続できます。


    3. 接続例

    以下は接続例です:

    mysql -h 172.25.209.34 -u root -p

    パスワードを入力後、MariaDBのプロンプトに入ります:

    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 10
    Server version: 10.5.12-MariaDB-1 Debian build
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

    注意点

    • mysql.exeがPATHに含まれていない場合は、インストールディレクトリを指定して実行してください。
      例:
      "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysql.exe" -h 172.25.209.34 -u username -p
    • WSLのIPアドレスが変わる場合があるため、接続前に確認してください。

    これでPowerShellからMariaDBに接続できるはずです。