MySQLでデータベースを接続して作成する方法は?


17

次のコードを使用して、MySQLをインストールし、その上にデータベースを作成します。

sudo apt-get install mysql-server
mysqladmin -h localhost -u {username} -p create lrs

2行目を実行すると、次のメッセージが表示されます。

    Enter password:
    mysqladmin: connect to server at 'localhost' failed
    error: 'Access denied for user '{username}'@'localhost' (using password: YES)'

何が問題ですか?


1
これらの2つのコマンドを実際に使用した場合、データベースにアクセスできるようにするために{username}(admin / rootではない場合)の特権をどこで付与しましたか?
リンツウィンド

回答:


26

MySQLをインストールしたら、mysql root password設定する必要があります。そうするには:

  1. ターミナルで次のコマンドを入力します。

    mysql -u root

  2. これで、mysqlコンソールが開きます。そして、次の行を入力します。

    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yourpassword');

mysqlコンソールを終了するには、と入力しexitます。

ここで、rootユーザーでデータベース作成する必要があります。そうするには:

  1. ターミナルからmysqlを開きます。

    mysql -u root -p

  2. 前に作成したパスワードを入力します。

  3. 次の行を入力します。

    CREATE DATABASE yourdatabasename;

入力SHOW DATABASES;すると、リストに表示されます。その場合、使用する準備ができているデータベースがあります!


mysql -u root私を与えるERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
ニコラスラウル14

このエラーは、すでにrootユーザーがいて、パスワードがあることを意味します。rootパスワードを忘れた場合は、MySQLのドキュメントをお読みください。
ルシオ14

1

rootユーザーと関連パスワードを使用してMySQLに接続する必要があります。それらを設定する必要がある場合は、次のコマンドを使用します。sudo mysqladmin -u root -h localhost password 'mypassword'

そこから、次のドキュメントに従って追加のアカウントを構成できます。MySQLで新しいユーザーを作成して権限を付与する方法


1
をコピーsudo mysqladmin -u root -h localhost password 'mypassword'して端末に貼り付け、メッセージを受け取りましたAccess denied for user 'root'@'localhost' (using password: NO)
user543489

@Bertこのコードは機能しません。それpassword 'mypassword'は間違っているはずです-password 'mypassword'
ルシオ

何かを「mypassword」に置き換える必要がありますか?
user543489

私は実行sudo mysqladmin -u root -h localhost -password 'mypassword'したが、私は得るAccess denied for user 'root'@'localhost' (using password: YES)
user543489

@ user543489入力するとどうなりmysql -u rootますか?
ルシオ

1

12.04(Kubuntu 12.04を実行していると推測)以降、MySQLがデフォルトであるため、これは奇妙です。間にいくつかのステップが欠けているように見えるので、これを見てみましょう。

最初に、あなたが言ったように、インストールをしましょう。

sudo apt-get install mysql-server

インストールしたら、少しテストしてみましょう。

sudo netstat -tap | grep mysql

これを実行すると、この返信が表示されるはずです。

tcp        0      0 localhost:mysql         *:*                LISTEN      2556/mysqld

これが正しく実行されていない場合は、この再起動コマンドを実行し、

sudo service mysql restart

次に、サーバーを構成します。

/etc/mysql/my.cnf基本設定を構成していきましょう。これには、ログファイル、ポート番号などが含まれます。たとえば、ネットワークホストからの接続をリッスンするようにMySQLを構成するには、bind-addressディレクティブをサーバーのIPアドレスに変更します。

bind-address            = 192.168.0.5

この後、MySQLデーモンを再起動し、

sudo service mysql restart

MySQLルートパスワードを変更する場合は、次を実行します。

sudo dpkg-reconfigure mysql-server-5.5

デーモンが停止し、新しいパスワードの入力を求められます。

完了したら、設定する必要があります。いくつかのGoogle検索でデータベースの作成方法を学習できます

出典:Ubuntuサーバーガイド


0

次のコマンドを実行します:

sudo dpkg-reconfigure mysql-server-5.5

(5.5はバージョン番号で、異なるバージョンがある場合は適応します)

これにより、MySQLのルートパスワードを設定できるようになり、それをmysqladminand mysqlコマンドで使用できるようになります。


-1

MySQLをインストールしたら、mysqlのルートパスワードを設定する必要があります。そうするには:

Enter the next command in a terminal:

mysql -u root -p

Enter Password: (Enter your password here).

これは、受け入れられた回答でまだ言われていないものには貢献しません。
Guntbert 14

-1

私はこれが3歳であることを知っていますが、この問題も同様にあり、他の誰かが私と同じ検索を行う場合に備えて私の答えを投稿したいと思いました。

mysqladmin: connect to server at 'localhost' failed

これは、ユーザーがログインする前に、データベース自体に接続する権限を持っていないことを示しています。データベースユーザーではなく、実際のLinuxユーザーです。すべてをスーパーユーザーとして実行します。sudomysql -u root -p

root(Linuxユーザー、またはsudo特権を持つユーザー)のみが、root(データベースユーザー)としてmysqlにログインできます。私はこれを文書化した場所を見つけることができませんでしたが、実験によりそれが事実であることが証明されました。ルートユーザーとまったく同じ権限を持つ新しいユーザーを作成できますが、これは制限されません。

sudo mysql -u root
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yourpassword');
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
FLUSH PRIVILEGES;

これで、「newuser」(または選択した任意の名前)をsudoを使用せずにログインできるようになり、データベース管理のすべてのニーズに使用できます。


1
probablyここで答えに単語を使用すると、眉をひそめます。
WinEunuuchs2Unix

まあ、私はそれをテストせずにいると言うことはできません、今私はできますか?
WizardStan
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.