sql >> データベース >  >> RDS >> Mysql

リモート接続MysqlUbuntu

    MySQLをローカルホスト以外に公開するには、次の行が必要です

    mysqlバージョン5.6以下の場合

    /etc/mysql/my.cnfでコメント解除 ループバックではなく、コンピュータのIPアドレスに割り当てられます

    mysqlバージョン5.7以降の場合

    /etc/mysql/mysql.conf.d/mysqld.cnfでコメント解除 ループバックではなく、コンピュータのIPアドレスに割り当てられます

    #Replace xxx with your IP Address 
    bind-address        = xxx.xxx.xxx.xxx
    

    または、bind-address = 0.0.0.0を追加します IPを指定したくない場合

    次に、新しいmy.cnfエントリを使用してMySQLを停止して再起動します。実行したら、ターミナルに移動して次のコマンドを入力します。

    lsof -i -P | grep :3306
    

    xxxの実際のIPでこのようなものが戻ってくるはずです

    mysqld  1046  mysql  10u  IPv4  5203  0t0  TCP  xxx.xxx.xxx.xxx:3306 (LISTEN)
    

    上記のステートメントが正しく返される場合は、リモートユーザーを受け入れることができます。ただし、リモートユーザーが正しい特権に接続するには、そのユーザーをローカルホストと「%」の両方で作成する必要があります。

    CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';
    CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';
    

    次に、

    GRANT ALL ON *.* TO 'myuser'@'localhost';
    GRANT ALL ON *.* TO 'myuser'@'%';
    

    そして最後に、

    FLUSH PRIVILEGES; 
    EXIT;
    

    上記と同じユーザーを作成していない場合、ローカルにログオンすると、基本ローカルホスト特権を継承し、アクセスの問題が発生する可能性があります。 myuserが持つアクセスを制限したい場合は、GRANTステートメントの構文ここ これらすべてを乗り越えても問題が解決しない場合は、追加のエラー出力とmy.cnfの適切な行を投稿してください。

    注:lsofが返されない、または見つからない場合は、こちら をインストールできます。 Linuxディストリビューションに基づいています。物事を機能させるためにlsofは必要ありませんが、物事が期待どおりに機能していない場合に非常に便利です。

    更新:bind-addressを追加/変更した後でも my.cnfで 動作しなかった場合は、最初に宣言された場所に移動して変更します。

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


    1. 並列計画の開始方法–パート1

    2. SQLCASEステートメント

    3. MySQLからJSONデータを取得する方法は?

    4. PL / SQLで文字列を分割する方法は?