編集:私はこれが本当にそうだと信じていますコピー~のhttps://askubuntu.com/questions/766334/cant-login-as-mysql-user-root-from-normal-user-account-in-ubuntu-16-04
私はそのページで最高の答えを使用し、うまくいきました。
私は新しいLinux Mint 18 MATEをインストールし、Mysqlをインストールしようとしました。私は次のようにこれを行います。
sudo apt-get install mysql-server
すでにインストールされている
mysql Ver 14.14 Distrib 5.7.16, for Linux (x86_64) using EditLine wrappe
これは私にパスワードを尋ねるいくつかの「gui」画面を経ました。すべての項目に対してEnterキーを押しましたが、これは「パスワードなし」と言うのと同じです。
ところで今は入ることができると思ったのmysql -u root
ですが。
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
万が一に備えて再起動を試みました。正しいパスワードを使用しないことが問題ですか、それとももっと基本的な問題がありますか?パスワードの場合はどうやって確認/リセットしますか?ありがとう、マックス
編集:以下のf35の答えに基づいて、以下を行いました。
sudo service mysql stop
sudo mysqld_safe --skip-grant-tables &
mysql -u root
その後、mysqlでパスワードを変更しようとしましたが、フィールド名を認識できませんでした。内容を確認するために説明を行います。
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> update user set password=PASSWORD("password") where User='root';
ERROR 1054 (42S22): Unknown column 'password' in 'field list'
mysql> desc user;
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Host | char(60) | NO | PRI | | |
| User | char(32) | NO | PRI | | |
| Select_priv | enum('N','Y') | NO | | N | |
| Insert_priv | enum('N','Y') | NO | | N | |
| Update_priv | enum('N','Y') | NO | | N | |
| Delete_priv | enum('N','Y') | NO | | N | |
| Create_priv | enum('N','Y') | NO | | N | |
| Drop_priv | enum('N','Y') | NO | | N | |
| Reload_priv | enum('N','Y') | NO | | N | |
| Shutdown_priv | enum('N','Y') | NO | | N | |
| Process_priv | enum('N','Y') | NO | | N | |
| File_priv | enum('N','Y') | NO | | N | |
| Grant_priv | enum('N','Y') | NO | | N | |
| References_priv | enum('N','Y') | NO | | N | |
| Index_priv | enum('N','Y') | NO | | N | |
| Alter_priv | enum('N','Y') | NO | | N | |
| Show_db_priv | enum('N','Y') | NO | | N | |
| Super_priv | enum('N','Y') | NO | | N | |
| Create_tmp_table_priv | enum('N','Y') | NO | | N | |
| Lock_tables_priv | enum('N','Y') | NO | | N | |
| Execute_priv | enum('N','Y') | NO | | N | |
| Repl_slave_priv | enum('N','Y') | NO | | N | |
| Repl_client_priv | enum('N','Y') | NO | | N | |
| Create_view_priv | enum('N','Y') | NO | | N | |
| Show_view_priv | enum('N','Y') | NO | | N | |
| Create_routine_priv | enum('N','Y') | NO | | N | |
| Alter_routine_priv | enum('N','Y') | NO | | N | |
| Create_user_priv | enum('N','Y') | NO | | N | |
| Event_priv | enum('N','Y') | NO | | N | |
| Trigger_priv | enum('N','Y') | NO | | N | |
| Create_tablespace_priv | enum('N','Y') | NO | | N | |
| ssl_type | enum('','ANY','X509','SPECIFIED') | NO | | | |
| ssl_cipher | blob | NO | | NULL | |
| x509_issuer | blob | NO | | NULL | |
| x509_subject | blob | NO | | NULL | |
| max_questions | int(11) unsigned | NO | | 0 | |
| max_updates | int(11) unsigned | NO | | 0 | |
| max_connections | int(11) unsigned | NO | | 0 | |
| max_user_connections | int(11) unsigned | NO | | 0 | |
| plugin | char(64) | NO | | mysql_native_password | |
| authentication_string | text | YES | | NULL | |
| password_expired | enum('N','Y') | NO | | N | |
| password_last_changed | timestamp | YES | | NULL | |
| password_lifetime | smallint(5) unsigned | YES | | NULL | |
| account_locked | enum('N','Y') | NO | | N | |
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
45 rows in set (0.00 sec)
次に何をすべきかわからない。また、パスワードを設定しない構文は何ですか?うんset password=''
?
注:debian-sys-mainユーザーを使用してログインすることもできますが、まだrootユーザーのパスワードを変更する方法がわかりません。
私のmysqlのバージョンは次のとおりです。サーバーバージョン: 5.7.16-0ubuntu0.16.04.1(Ubuntu)
答え1
1) mysql-server を再構成してみることができます:
sudo dpkg-reconfigure mysql-server
2)debian-sys-maintパスワードがあることを確認してください。
cat /etc/mysql/debian.cnf
そして確認してください:
user = debian-sys-maint
password = xxxxGx0fSQxxGa
debian-sys-maint には mysql サーバーに対するフルアクセス権があります。
3)問題がまだ解決されていない場合は、パスワードをリセットできます。
sudo service mysql stop
sudo mysqld_safe --skip-grant-tables &
mysql -u root
mysql> use mysql;
mysql> update user set password=PASSWORD("NewPasswd") where User='root';
mysql> flush privileges;
mysql> quit
sudo service mysql stop
sudo service mysql start
mysql -u root -p
答え2
Ubuntu 20.10にMySQL 8.0.24をクリーンインストールした後にログインできません。
mysql -u root
これにより
エラー 1698(28000): "root"@"localhost" ユーザーへのアクセスが拒否されました。
しかし、ログインになりました。
sudo mysql -u root
おそらく、Linuxのスーパーユーザーがrootだからです。
答え3
CentOS 8でこれを行う必要があります。
# In regular terminal
sudo systemctl stop mysqld
sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking --user root
mysql -u root
# In MySQL terminal
use mysql;
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'My^Pass1';
exit
# In regular terminal
sudo pkill mysqld
sudo systemctl start mysqld
mysql -u root -p
答え4
許可された回答にいくつかの問題が発生しました。
初めて実行したときにsudo service mysql stop
サービスが停止しませんでしたが、その事実に気付いていませんでした。ps -fe | grep mysql
そのため、次のコマンドを実行する前にプロセスが完了していることを確認してください。数回の試みの終わりについにsudo kill -KILL <mysqld process id>
。
その後、sql updateを実行した後はservice mysql stop
再び機能しません。そのため、プロセスIDをご確認の上、ps -fe | grep mysqld_safe
下記の指示に従ってご使用ください。sudo kill -TERM <process id>
複数のプロセスがある場合は、IDが最も低いプロセスを使用してください。
sudo service mysql stop
sudo mysqld_safe --skip-grant-tables &
mysql -u root
mysql> use mysql;
mysql> update user set password=PASSWORD("NewPasswd"), plugin='mysql_native_password', host='%' where User='root';
mysql> flush privileges;
mysql> quit
sudo kill -TERM <mysqld_safe process id>
sudo service mysql start
mysql -u root -p