質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

Q&A

2回答

5555閲覧

mysqlのhost127.0.0.1や::1に接続できない原因とは

aaaaaaaa

総合スコア501

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

0グッド

0クリップ

投稿2018/03/16 10:35

編集2018/06/01 10:20

Hostが127.0.0.1や::1のアカウントのパスワードを変更したいのですが、

mysql

1+------+-----------+-------------------------------------------+ 2| user | host | password | 3+------+-----------+-------------------------------------------+ 4| root | localhost | *********** | 5| root | 127.0.0.1 | ********** | 6| root | ::1 | ********** | 7| | localhost | | 8| pma | localhost | | 9+------+-----------+-------------------------------------------+

root@localhostに接続したままで変更を行おうとすると

mysql

1MariaDB [(none)]> set password for root@127.0.0.1 = password("*******"); 2ERROR 1133 (28000): Can't find any matching row in the user table 3MariaDB [(none)]>

と表示されてしまいます。

mysql

1MariaDB [(none)]> set password for root@localhost = password("******"); 2Query OK, 0 rows affected (0.00 sec)

と入力しても変更されるのは、localhostのみで127.0.0.1や::1は、変更されません。
しかし、スタックオーバーフローによると-skip-name-resolveをmy.iniに記述するとhostが127.0.0.1や::1のアカウントに接続できるみたいなのでやってみたのですが

mysql

1C:\WINDOWS\System32>mysql -u root -p 2Enter password: ********** 3ERROR 1130 (HY000): Host '::1' is not allowed to connect to this MariaDB server 4 5C:\WINDOWS\System32>mysql -u root -h localhost -p 6Enter password: ********** 7ERROR 1130 (HY000): Host '::1' is not allowed to connect to this MariaDB server 8 9C:\WINDOWS\System32>mysql -h localhost -u root -p 10Enter password: ********** 11ERROR 1130 (HY000): Host '::1' is not allowed to connect to this MariaDB server 12 13C:\WINDOWS\System32>mysql -h 127.0.0.1 -u root -p 14Enter password: ********** 15ERROR 1130 (HY000): Host '127.0.0.1' is not allowed to connect to this MariaDB server 16 17C:\WINDOWS\System32>mysql -h 127.0.0.1 -u root -p 18Enter password: ********** 19ERROR 1130 (HY000): Host '127.0.0.1' is not allowed to connect to this MariaDB server

上記のようなエラーが発生してしまいます。

どうすれば、127.0.0.1や::1のパスワードを変更できるのでしょうか。

https://ja.stackoverflow.com/questions/43436/mysql%E3%81%AE127-0-0-1%E3%81%AB%E6%8E%A5%E7%B6%9A%E3%81%99%E3%82%8B%E3%81%A8%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%A6%E3%81%97%E3%81%BE%E3%81%86%E5%8E%9F%E5%9B%A0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

単に127.0.0.1でログインして変更すればいいのでは?

投稿2018/03/29 02:33

m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aaaaaaaa

2018/03/29 10:34

ご回答ありがとうございます。 C:\WINDOWS\system32>mysql -u root -h 127.0.0.1 -p Enter password: ********** Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 3 Server version: 10.1.30-MariaDB mariadb.org binary distribution Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> select current_user(); +----------------+ | current_user() | +----------------+ | root@localhost | +----------------+ 1 row in set (0.01 sec) MariaDB [(none)]> set password for root = password("*******"); ERROR 1133 (28000): Can't find any matching row in the user table MariaDB [(none)]> set password for root@localhost = password("*******"); Query OK, 0 rows affected (0.07 sec) MariaDB [(none)]> select user,password,host from mysql.user\G *************************** 1. row *************************** user: root password: ************************************************* host: localhost *************************** 2. row *************************** user: root password: ******** host: 127.0.0.1 *************************** 3. row *************************** user: root password: ******** host: ::1 *************************** 4. row *************************** user: password: host: localhost *************************** 5. row *************************** user: pma password: host: localhost 5 rows in set (0.00 sec) MariaDB [(none)]> 上記のように-hを127.0.0.1として接続したうえで、set passwordとしても変わるのは、hostがlocalhostのもののみであり、-h127.0.0.1のパスワードは変わりませんでした。
m.ts10806

2018/03/29 23:54

なるほど。 select current_user() の結果がroot@localhostだから当然といえば当然ですね。 となると結局ログインするとlocalhostだから 127.0.0.1のパスワードが変わっていない という確認にはならないのでは?
aaaaaaaa

2018/03/30 10:26

ご回答ありがとうございます。 -hの設定をしてもlocalhostに接続してしまうということは、私の環境では、hostが127.0.0.1や::1のものには接続ができないし、認証番号も変えられないということなのでしょうか。
m.ts10806

2018/03/30 23:11

環境差ではないように思います。そういうものなのかなと(ちゃんと調べてないので分かりませんが)
m.ts10806

2018/03/30 23:14

それか、基本的にローカルPC上では127.0.0.1も::1もlocalhostも概念的には同じものなはずなので、基本は同一視されていてlocalhostとして解釈されていると考えるか、ですけど。
guest

0

set password for 'ユーザー名'@'ホスト名' = password('パスワード');

だとどうでしょうか?

投稿2018/03/16 10:56

CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aaaaaaaa

2018/03/22 10:43

ご回答ありがとうございます。 ユーザーは、以下の通りですが MariaDB [(none)]> select user,password,host from mysql.user; +------+-------------------------------------------+-----------+ | user | password | host | +------+-------------------------------------------+-----------+ | root | ************************* | localhost | | root | ********** | 127.0.0.1 | | root | ********** | ::1 | | | | localhost | | pma | | localhost | +------+-------------------------------------------+-----------+ 5 rows in set (0.00 sec) ご回答の内容も含めいくつかやってみると MariaDB [(none)]> set password for root@127.0.0.1 = password("*********"); ERROR 1133 (28000): Can't find any matching row in the user table MariaDB [(none)]> set password for root@'127.0.0.1' = password('*********'); ERROR 1133 (28000): Can't find any matching row in the user table MariaDB [(none)]> set password for 'root'@'127.0.0.1' = password('***********'); ERROR 1133 (28000): Can't find any matching row in the user table となってしまい変更ができませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問