私は電気技師で、プログラミングではなく主に電力システムを使っています。最近、私はUbuntuにソフトウェアスイートをインストールするためのマニュアルに従っています。私は実際にはmySQL
の知識が全くありません。私はUbuntuに以下のインストールをしました。
Sudo apt-get update
Sudo apt-get install mysql-server-5.5
Sudo apt-get install mysql-client-5.5
Sudo apt-get install mysql-common
Sudo apt-get install glade
Sudo apt-get install ntp
それから
me@ubuntu:~/Desktop/iPDC-v1.3.1/DBServer-1.1$ mysql -uroot -proot <"Db.sql"
次のエラーメッセージが表示されました。
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
修正して続行するにはどうすればよいですか。
注: For MySQL 5.7以降 を参照してください @Lahiruからの回答 この質問への回答。それはより最新の情報を含んでいます。
MySQL <5.7の場合:
デフォルトのrootパスワードはroot
ではなく空白(空の文字列)です。だからあなたはただのようにログインすることができます:
mysql -u root
インストール後に明らかにあなたのrootパスワードを変更するべきです
mysqladmin -u root password [newpassword]
ほとんどの場合、DBを使って作業する前に、個々のユーザーアカウントも設定する必要があります。
私はこの文を実行することでこの問題を解決することができました
Sudo dpkg-reconfigure mysql-server-5.5
これはrootのパスワードを変更します。
パスワードを再設定する必要があります。 mac osx(テスト済みおよび動作中)およびubuntu用の手順
を使用してMySQLを停止する
Sudo service mysql stop
または
$ Sudo /usr/local/mysql/support-files/mysql.server stop
セーフモードで起動します。
$ Sudo mysqld_safe --skip-grant-tables --skip-networking
(上の行はコマンド全体です)
これはプロセスが終了するまで継続的なコマンドになるので、別のシェル/ターミナルウィンドウを開き、パスワードなしでログインします。
$ mysql -u root
mysql> UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';
@ IberoMediaのコメントによると、新しいバージョンのMySQLでは、このフィールドはauthentication_string
と呼ばれます。
mysql> UPDATE mysql.user SET authentication_string =PASSWORD('password') WHERE User='root';
MySQLを起動します。
Sudo service mysql start
または
Sudo /usr/local/mysql/support-files/mysql.server start
あなたの新しいパスワードは 'password'です。
それでも問題が解決しない場合はパスを強制的に変更してみてください。
/etc/init.d/mysql stop
mysqld_safe --skip-grant-tables &
mysql -u root
新しいMySQL rootユーザーパスワードを設定する
use mysql;
update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
flush privileges;
quit;
MySQLサーバーを停止します。
/etc/init.d/mysql stop
MySQLサーバーを起動してテストします。
mysql -u root -p
サーバーのデータディレクトリが空の場合、サーバーの最初の起動時に次のことが起こります。
それを明らかにするには、次のコマンドを使用します。
Shell> Sudo grep 'temporary password' /var/log/mysqld.log
生成された一時パスワードを使用してログインし、スーパーユーザーアカウント用のカスタムパスワードを設定して、できるだけ早くrootパスワードを変更します。
Shell> mysql -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass5!';
私はこれが古い質問だと知っていますが、これは誰かに役立つかもしれないと感じます。私は最近同じ問題に直面しましたが、私の場合、私は自分のパスワードを大丈夫に覚えていますがそれは私に同じエラーを与え続けました。私は非常に多くの解決策を試してみましたがそれでも私はこれを試してみましたどれも助けにはならなかった
mysql -u root -p
その後、このようなパスワードをあなたに尋ねます
Enter password:
それから私は私が使用したパスワードを入力しました。それで全部です
あなたのパスワードがなくなったときに起こります。
忘れたときにパスワードを変更する手順
MySQLサーバーを停止します(Linuxの場合)。
Sudo systemctl stop mysql
付与テーブルをロードしたり、ネットワークを有効にしたりしないでデータベースを起動します。
Sudo mysqld_safe --skip-grant-tables --skip-networking &
このコマンドの最後にあるアンパサンドは、このプロセスを
backgroundなので、引き続き端末を使用して#mysql -u rootを実行できるので、パスワードの入力は求められません。
以下のようなエラーになったら:
2018-02-12T08:57:39.826071Z UNIX用のmysqld_safeディレクトリ '/ var/run/mysqld'
ソケットファイルが存在しません。 mysql -u root ERROR 2002(HY000):ソケット経由でローカルMySQLサーバーに接続できない
'/ var/run/mysqld/mysqld.sock'(2)[1] +終了1
MySQLサービスディレクトリを作成します。
Sudo mkdir /var/run/mysqld
MySQLユーザーにサービスディレクトリへの書き込み権限を与えます。
Sudo chown mysql: /var/run/mysqld
Mysqlをバックグラウンドで実行するには、手順2と同じコマンドを実行します。
Mysql -u rootを実行すると、パスワードを入力せずにmysqlコンソールが表示されます。
これらのコマンドを実行する
FLUSH PRIVILEGES;
MySQL 5.7.6以降の場合
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
MySQL 5.7.5以前の場合
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');
ALTER USERコマンドが機能しない場合は、次のようにします。
UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHERE User = 'root' AND Host = 'localhost';
今終了
手動で起動したインスタンスを停止する
Sudo kill `cat /var/run/mysqld/mysqld.pid`
Mysqlを再起動します
Sudo systemctl start mysql
Ubuntu-16.04を使用しています:mysqlをインストールしました - 5.7。私は同じ問題を抱えていた:ログインはrootユーザーのために拒否されました。
以下のステップを試してみました:
dpkg --get-selections | grep mysql
(mysqlのバージョンを取得するため)。
dpkg-reconfigure mysql-server-5.7
mysql -u root -p
-pを指定しないと、パスワードの入力を要求されません。入室したら、次の手順でパスワードを使ってユーザーを作成できます。
CREATE USER 'your_new_username'@'your-hostname' IDENTIFIED BY 'your-password';
GRANT ALL PRIVILEGES ON *.* to 'your_new_username'@'your-hostname' WITH GRANT OPTION;
ルートから出て、上記で与えたものからログインします。
mysql -u <your_new_username> -p
何らかの理由でそれでもmysqlを入力するだけではうまくいきません。 AT ALL。 mysql -u <name> -p
を使う習慣にすることをお勧めします。
私はこの非常に厄介な問題に出くわし、うまくいかない多くの答えを見つけました。私が遭遇した最良の解決策は、mysqlを完全にアンインストールしてそれを再インストールすることでした。再インストール時にrootパスワードを設定すると問題が解決しました。
Sudo apt-get purge mysql-server mysql-client mysql-common mysql-server-core-5.5 mysql-client-core-5.5
Sudo rm -rf /etc/mysql /var/lib/mysql
Sudo apt-get autoremove
Sudo apt-get autoclean
私はそれを信用しないように私は他の所でこのコードを見つけた。しかしそれはうまくいきます。アンインストールした後にmysqlをインストールするには、Digital Oceanに良いチュートリアルがあると思います。私の要旨をチェックしてください。
https://Gist.github.com/JamesDaniel/c02ef210c17c1dec82fc973cac484096
公式ドキュメントを読んでください: Mysql:rootパスワードをリセットする方法
端末にアクセスできる場合
MySQL 5.7.6以降:
$ mysql
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
MySQL 5.7.5以前:
$ mysql
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
Mac OSXでmysql-5.7.12-osx10.11-x86_64.dmgを使用しています
インストールプロセスにより、rootユーザー用の一時パスワードが自動的に設定されます。パスワードを保存してください。パスワードを回復できません。
指示に従う
cd /usr/local/mysql/bin/
に行くSET PASSWORD FOR 'root'@'localhost' = PASSWORD('{YOUR_PASSWORD}');
あなたがあなたのパスワードを設定したいなら: "root"それからコマンドはSET PASSWORD FOR 'root'@'localhost' = PASSWORD('root');
になるでしょうALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
を実行exit
を実行する./mysql -u root -p
を実行便宜上、PATHに"/usr/local/mysql/bin"
を追加してください。
これでどこからでも./mysql -u root -p
を入力してからパスワードを入力するとmysql> Promptが表示されます。
それが役に立てば幸い。
答えは愚かに聞こえるかもしれませんが、時間を無駄にした後、これは私がそれを機能させる方法です
mysql -u root -p
エラーメッセージが出ました
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
私は正しいパスワード(あなたが最初にmysqlをインストールしたときにあなたが得る一時的なパスワード)をタイプしていたとしても
I パスワードプロンプトが点滅しているときにパスワードを入力したときに正しく表示された
それでも問題が解決しない場合はパスを強制的に変更してみてください。
MySQLサーバーを停止します(Linuxの場合)。
/etc/init.d/mysql stop
MySQLサーバーを停止します(Mac OS Xの場合)。
mysql.server stop
--skip-grant-tablesを使用してmysqld_safeデーモンを起動します。
mysqld_safe --skip-grant-tables &
mysql -u root
新しいMySQL rootユーザーパスワードを設定する
use mysql;
update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
flush privileges;
quit;
MySQLサーバーを停止します(Linuxの場合)。
/etc/init.d/mysql stop
MySQLサーバーを停止します(Mac OS Xの場合)。
mysql.server stop
MySQLサーバーサービスを起動し、rootでログインするようにテストします。
mysql -u root -p
ただターミナルに入る
mysql -u root -p。それはあなたにパスワードを尋ねるよりも
たった1行で、私の問題は解決しました。
Sudo dpkg-reconfigure mysql-server-5.5
Ubuntu 16.04(MySQLバージョン5.7.13)では、以下の手順で問題を解決できました。
セクションB.5.3.2.2ルートパスワードの再設定の手順に従ってください。UnixおよびUnixライクシステム MySQL 5.7リファレンスマニュアル
#Sudo mysqld_safe --init-file =/home/me/mysql-initを試したところ、失敗しました。エラーは/var/log/mysql/error.logにありました
2016-08-10T11:41:20.421946Z 0 [注意] init_file '/ home/me/mysql/mysql-init'の実行が開始されました。 2016-08-10T11:41:20.422070Z 0 [エラー]/usr/sbin/mysqld:ファイル '/ home/me/mysql/mysql-init'が見つかりません(エラーコード:13 - 権限が拒否されました)2016-08-10T11: 41:20.422096Z 0 [エラー]中止中
Mysql-initのファイル許可は問題ありませんでした、apparmor許可を編集する必要があります
#Sudo vi /etc/apparmor.d/usr.sbin.mysqldで編集します。
....
/var/log/mysql/ r,
/var/log/mysql/** rw,
# Allow user init file
/home/pranab/mysql/* r,
# Site-specific additions and overrides. See local/README for details.
#include <local/usr.sbin.mysqld>
}
#Sudo /etc/init.d/apparmor reloadを実行します。
もう一度mysqld_safeを起動して、上記の手順2を試してください。 /var/log/mysql/error.logを調べて、エラーがなく、mysqldが正常に起動されていることを確認してください。
#mysql -u root -pを実行します。
パスワードを入力する:
Mysql-initで指定したパスワードを入力してください。これでrootとしてログインできるはずです。
#Sudoでmysqld_safeをシャットダウンします。mysqladmin -u root -p shutdown
#Sudo systemctl start mysqlでmysqldを通常どおりに起動します。
あなたが他の答えで言われているコマンドを入力しているけれどもこれがまだこのエラーを得るならば、これはうまくいくでしょう:
mysqld_safe Logging to '/var/log/mysql/error.log'.
mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.
[1]+ Exit 1 Sudo mysqld_safe --skip-grant-tables
パスワードを再設定するまで、以下のコマンドを順に実行してください。
# Stop Your Server First
Sudo service mysql stop
# Make MySQL service directory.
Sudo mkdir /var/run/mysqld
# Give MySQL permission to work with the created directory
Sudo chown mysql: /var/run/mysqld
# Start MySQL, without permission and network checking
Sudo mysqld_safe --skip-grant-tables --skip-networking &
# Log in to your server without any password.
mysql -uroot mysql
# Update the password for the root user:
UPDATE mysql.user SET authentication_string=PASSWORD('YourNewPasswordBuddy'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';
#if you omit (AND Host='localhost') section, it updates the root pass regardless of its Host
FLUSH PRIVILEGES;
EXIT;
#Now you can use your new password to login to your Server
mysql -uroot -p
まだパスワードを設定していない場合は、mysql -uroot
を実行してください、それは私のために動作します。
私は同様の問題を抱えていました:
エラー1045(28000):ユーザ 'root' @ 'localhost'のアクセスが拒否されました(パスワードを使用:NO)
しかし、私の場合、その原因は本当にばかげていました。 Word文書からコマンドをコピーしましたが、問題はハイフンにASCII 2Dコードがなく、Unicode E28093がなかったことです。
進入禁止:
mysql -u root –pxxxx
正しい方法:
mysql -u root -pxxxx
どちらも同じように見えますが、同じではありません(パスワードを置き換えてコピーアンドペーストしてみてください)。
この種のエラーに直面した場合は、コピーして貼り付ける代わりにコマンドを入力してみることをお勧めします。
Macでは、あなたがインストールで与えられた最初のパスワードでログインするのに問題があるなら、多分あなたは単にmysqlプロセスを強制終了してから試すことができます。
だから:1 - mysqlのPIDを見つけるために次のコマンドを実行します。
ps -aef | grep mysql | grep -v grep
2 - プロセスを殺す:
kill -15 [process id]
その後、このコマンドを使用して初期パスワードでログインできます。
mysql -uroot -p
パスワードの入力を求められます。初期パスワードを入力するだけです。
デフォルトではパスワードはnullになるので、以下の手順でパスワードを変更する必要があります。
mySQLに接続する
root#mysql
Mysqlを使う
mysql> update user set password = PASSWORD( 'root')ここで、User = 'root';最後に、権限を再読み込みします。
mysql>フラッシュ特権。 MySQL>終了
私は@Lahiruによって正しい答えを試してみましたが、macOS Mojave上のMySQLサーバーバージョン8.0.16(Community)では動作しませんでした。
上記のSameer Choudharyの指示に従い、いくつか調整を加えて、rootパスワードを変更し、localhostからのrootアクセスを有効にすることができました。
更新:あなたがhomebrewを使ってMac OSにインストールしているならば、これらすべては必要ではない: "brew install mysql"
最近のMySQLバージョンではmysql.user
テーブルにpassword
はありません。
だからあなたはALTER USER
を実行する必要があります。この1行のコマンドをファイルに入れてください。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
そしてinitファイルとして(rootまたはmysqlユーザーとして)実行してください。
mysqld_safe --init-file=/home/me/mysql-init &
mysqld_safe
を起動するにはMySQLサーバーを停止する必要があります。
また、このinitファイルをロードするためのapparmor権限に問題がある可能性があります。ここにもっと読む https://blogs.Oracle.com/jsmyth/entry/apparmor_and_mysql