web-dev-qa-db-ja.com

Mysqlのデフォルトのユーザーアカウント

MySQLは初めてで、Ubuntu 16.04にMySQLをインストールしました。インストール時にrootのパスワードを指定しました。

ターミナルでは、rootユーザーと作成されたユーザーのみにアクセスできます。

bharath@bharath-desktop:~$ mysql -uroot -pbharath

mysql:[警告]コマンドラインインターフェイスでパスワードを使用すると、安全でない場合があります。 MySQLモニターへようこそ。コマンドは;で終わります。または\ g。 MySQL接続IDは7サーバーバージョンです:5.7.16-0ubuntu0.16.04.1(Ubuntu)

Copyright(c)2000、2016、Oracleおよび/またはその関連会社。全著作権所有。

OracleはOracle Corporationおよび/またはその関連会社の登録商標です。その他の名称は、それぞれの所有者の商標である可能性があります。

「ヘルプ」と入力します。または '\ h'を使用してください。現在の入力ステートメントをクリアするには、「\ c」と入力します。

mysql>

しかし、ターミナルでデフォルトのMySQLユーザーにアクセスできません。次のように表示されます。

bharath@bharath-desktop:~$ mysql

エラー1045(28000):ユーザー 'bharath' @ 'localhost'のアクセスが拒否されました(パスワードを使用:いいえ)**

MySQLの後でEnterキーを押すと、認証されません。これにアクセスするには?

1
Bharath

私の知る限り、新しいmysqlサーバーのデフォルトユーザーはroot@localhostmysql.sys@localhostです。bharath@localhostユーザーを作成し、.my.cnfを$HOMEフォルダには、次の内容が含まれています。

[mysql]
user=bharath
password=<yourpreferredpassword>
Host=localhost
2
jerichorivera

mysqlという名前のデフォルトのMySQLユーザーがいる場合は、次のコマンドでMySQLプロンプトを開始します。

Shell> mysql -umysql

これにより、mysqlユーザーにパスワードがない場合にアクセス権が付与されます。それ以外の場合は、-pパラメーターを指定して、パスワードの入力を求めるプロンプトを出すことができます。

Shell> mysql -umysql -p

ただし、デフォルトのドキュメント .4最初のMySQLアカウントの保護 によると、rootユーザーまたは匿名アカウント''のいずれかがあります(空白/空)

Mysql.userグラントテーブルは、初期のMySQLユーザーアカウントとそのアクセス権限を定義します。 MySQL 5.7の現在のバージョンでは「root」@「localhost」アカウントのみが作成されますが、以前のバージョンでは、次のような複数のアカウントが存在する場合があります。

一部のアカウントには、ユーザー名rootがあります。これらはすべての特権を持ち、何でもできるスーパーユーザーアカウントです。これらのrootアカウントに空のパスワードがある場合、誰でもパスワードなしでrootとしてMySQLサーバーに接続し、すべての権限を付与できます。

Windowsでは、rootアカウントが作成されますローカルホストからの接続のみを許可します。ホスト名localhost、IPアドレス127.0.0.1、またはIPv6アドレス:: 1を指定することにより、接続を確立できます。インストール中にユーザーが[リモートマシンからのルートアクセスを有効にする]オプションを選択すると、Windowsインストーラーは、任意のホストからの接続を許可する別のルートアカウントを作成します。

Unixでは、各rootアカウントがローカルホストからの接続を許可します。ホスト名localhost、IPアドレス127.0.0.1、IPv6アドレス:: 1、または実際のホスト名またはIPアドレスを指定することにより、接続を確立できます。

'' root '@' localhost 'アカウントのmysql.proxies_privテーブルには、' '@' '、つまりすべてのユーザーとすべてのホストにPROXY権限を付与できる行があります。これにより、rootはプロキシユーザーを設定し、プロキシユーザーを設定する権限を他のアカウントに委任することができます。セクション5.9「プロキシユーザー」を参照してください。

anonymousユーザーのアカウントが作成された場合、これらのユーザー名は空です。匿名アカウントにはパスワードがないため、誰でもそれらを使用してMySQLサーバーに接続できます。

Windows Windowsでは、ローカルホストからの接続を許可する匿名アカウントが1つあります。 localhostのホスト名を指定すると、接続を確立できます。

Unix Unixでは、各匿名アカウントがローカルホストからの接続を許可します。アカウントの1つにlocalhostのホスト名を指定するか、他のアカウントに実際のホスト名またはIPアドレスを指定することにより、接続を確立できます。

Rootアカウントで接続した後、MySQLインスタンスで次のステートメントを実行することにより、アカウントを確認できます。

前の5.7.6:

SELECT User, Host, Password FROM mysql.user;

5.7.6以降:

SELECT User, Host, HEX(authentication_string) FROM mysql.user;

次の表が表示されます。

+------+--------------------+----------+
| User | Host               | Password |
+------+--------------------+----------+
| root | localhost          |          |
| root | myhost.example.com |          |
| root | 127.0.0.1          |          |
| root | ::1                |          |
|      | localhost          |          |
|      | myhost.example.com |          |
+------+--------------------+----------+

あなたの例では、rootのパスワードエントリがあり、匿名の''(空白)の場合もあるかもしれません。

匿名のパスワードを変更する場合は、次のコマンドを実行します。

mysql> SET PASSWORD FOR ''@'localhost' = PASSWORD('new_password');

そしておそらく:

mysql> SET PASSWORD FOR ''@'myhost.example.com' = PASSWORD('new_password');

その後、次のようにlocalhostに接続できるはずです。

Shell> mysql -h localhost -pnewpassword

幸運を!

0