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キーを押すと、認証されません。これにアクセスするには?
私の知る限り、新しいmysqlサーバーのデフォルトユーザーはroot@localhost
とmysql.sys@localhost
です。bharath@localhost
ユーザーを作成し、.my.cnfを$HOME
フォルダには、次の内容が含まれています。
[mysql]
user=bharath
password=<yourpreferredpassword>
Host=localhost
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
幸運を!