私の地元の環境は:
mySQL 5.7がインストールされている場合
Sudo apt-get install mysql-common mysql-server
(CLI経由で)MySQLにログインしようとしたとき:
mysql -u root -p
私は3つのステップで周期的な問題に出会いました。
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
解決策:PCを再起動してください。
これは別のエラーにつながりました:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'.
考えられる問題"root"ユーザーのパスワードが間違っています。
解決策:このチュートリアルで rootパスワードをリセットしてください 。
正しいパスワードと正常なソケットでは、最後のエラーが発生します。
mysql "ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded"
ここで私は止まったか、どういうわけか再び1)になった。
私は解決策を得ました!
手順2)でrootのパスワードを再設定するときは、認証プラグインもmysql_native_password
:に変更してください。
use mysql;
update user set authentication_string=PASSWORD("") where User='root';
update user set plugin="mysql_native_password" where User='root'; # THIS LINE
flush privileges;
quit;
これで私は正常にログインすることができました!
Sudo /etc/init.d/mysql stop # stop mysql service
Sudo mysqld_safe --skip-grant-tables & # start mysql without password
# enter -> go
mysql -uroot # connect to mysql
use mysql; # use mysql table
update user set authentication_string=PASSWORD("") where User='root'; # update password to nothing
update user set plugin="mysql_native_password" where User='root'; # set password resolving to default mechanism for root user
flush privileges;
quit;
Sudo /etc/init.d/mysql stop
Sudo /etc/init.d/mysql start # reset mysql
# try login to database, just press enter at password Prompt because your password is now blank
mysql -u root -p
ソケットエラーが発生した場合、コミュニティには2つの解決策があります。
Sudo mkdir -p /var/run/mysqld; Sudo chown mysql /var/run/mysqld
Sudo mysqld_safe --skip-grant-tables &
(ありがとう@Cerin)
または
mkdir -p /var/run/mysqld && chown mysql:mysql /var/run/mysqld
(@Peter Dvukhrechenskyに感謝します)
mysql -uroot # "-hlocalhost" is default
"ファイルが見つかりません"またはsltエラーが発生する可能性があります。
mysql -uroot -h127.0.0.1
うまくいきます。
mysqld.sock
ファイルを作成したり、アクセス権を変更したり、シンボリックリンクしたりする方法はたくさんあります。結局問題ではなかった。
my.cnf
ファイルをスキップする問題もありませんでした。よくわからない場合は、 これが役に立ちます 。
あなたはそれが私のために働くように次のように試すことができます。
サーバーを起動します。
Sudo service mysql start
今、靴下のフォルダに移動します。
cd /var/run
靴下をバックアップします。
Sudo cp -rp ./mysqld ./mysqld.bak
サーバーを停止します。
Sudo service mysql stop
靴下を復元します。
Sudo mv ./mysqld.bak ./mysqld
Mysqld_safeを起動します。
Sudo mysqld_safe --skip-grant-tables --skip-networking &
Init mysqlシェル:
mysql -u root
パスワードを変更する:
したがって、まずデータベースを選択してください
mysql> use mysql;
以下の2つのクエリを入力してください。
mysql> update user set authentication_string=password('123456') where user='root';
mysql> update user set plugin="mysql_native_password" where User='root';
これで、すべて問題ありません。
mysql> flush privileges;
mysql> quit;
チェック用:
mysql -u root -p
やった!
N.B, After login please change the password again from phpmyadmin
今hostname/phpmyadmin
をチェックしてください
Username: root
Password: 123456
詳細については、チェックしてください Ubuntuで忘れたパスワードphpmyadminをリセットする方法
あなたはこれらのいくつかのステップを試すことができます:
Mysqlサービスの最初の停止Sudo /etc/init.d/mysql stop
パスワードなしでrootとしてログインSudo mysqld_safe --skip-grant-tables &
ログインmysql端末の後には、さらにコマンドを実行する必要があります。
use mysql;
UPDATE mysql.user SET authentication_string=PASSWORD('solutionclub3@*^G'), plugin='mysql_native_password' WHERE User='root';
flush privileges;
Sudo mysqladmin -u root -p -S /var/run/mysqld/mysqld.sock shutdown
Mysqlサーバーを再起動した後まだエラーが発生する場合は、次のサイトにアクセスしてください。 MySQL 5.7 rootパスワードのリセットUbuntu 16.04
mysql
コマンドはデフォルトでUNIXソケットを使用してMySQLに接続します。
MariaDBを使用している場合は、サーバー側で Unixソケット認証プラグイン をロードする必要があります。
[mysqld]
設定をこのように編集することによってそれをすることができます:
[mysqld]
plugin-load-add = auth_socket.so
ディストリビューションによっては、設定ファイルは通常/etc/mysql/
または/usr/local/etc/mysql/
にあります。
Ubuntu 18.04とmysql 5.7の場合
ステップ1:mkdir/var/run/mysqldをSudoします。
ステップ2:Sudo chown mysql/var/run/mysqld
ステップ3:Sudo mysqld_safe --skip-grant-tables&quit(立ち往生している場合はquitを使用)
パスワードなしでMySQLにログイン
ステップ4:Sudo mysql --user = root mysql
ステップ5:SELECT user、authentication_string、plugin、Host from mysql.user;
ステップ6:mysql_native_passwordで 'root'で識別されたユーザー 'root' @ 'localhost'の変更
今でログイン
試してみてください。Sudo mysql_secure_installation
仕事はUbuntuで18.04