実行しようとしているいくつかのコマンドで次のエラーが発生し、パスワードの入力を求められるたびにパスワードがわかりません。(注: Ubuntu ディストリビューションを 22.04 に更新しましたが、以前はパスワードが設定されていなかったか、'root' のパスワードが空でした)。
error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (13)'
sudo service mysql status
ほとんどの投稿から、共通の問題は mysql-server が実際には実行されていないということのようです。ただし、次のコマンドを実行すると、mysql-server が実行中であることがわかります...
$ cat /etc/services | grep 3306
mysql 3306/tcp
$ netstat -tulpn | grep 3306
(No info could be read for "-p": geteuid()=1000 but you should be root.)
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:33060 0.0.0.0:* LISTEN
これらのコマンドは「接続できません...」というエラーを出します:
- mysqladmin -u ルート -p シャットダウン
- mysqladmin バージョン
- マイスク
- mysql -u ルート
- mysql -u ルート -h ローカルホスト -p
実行するとmysql -u root -h 127.0.0.1 -p
パスワードの入力が求められるので機能しているように見えますが、以前のパスワードはどれも機能せず、実行できず、ルート パスワードを正常にリセットできませんでしsudo mysqld_safe --skip-grant-tables &
たsudo mysqld_safe --skip-grant-tables --skip-networking &
。
私も走りました…
- sudo apt-get install --mysql-server を再インストールします
- sudo aptアップデート
- sudo apt アップグレード
- sudo apt でmysql-serverをインストールします
- sudo apt でmysqlクライアントをインストールします
- sudo usermod -d /var/lib/mysql/ mysql
- sudo dpkg --configure -a
- そして、この投稿の上位 2 つの回答の推奨事項に従いました。https://stackoverflow.com/questions/41984956/cant-reset-root-password-with-skip-grant-tables-on-ubuntu-16
- 指示に従ってMySQLをアンインストールしようとしましたここ
- そしてアドバイスに従ってsockフォルダをバックアップして復元しようとしたここ
追加のランダム情報:
/var/run/mysqld/mysqld.sock
また、このプロセスの初期段階ではが存在していたこともわかっています(現在、そのディレクトリには mysql.bak しかありません)。ただし、 を実行するとsudo find / -type s
、"Permission Denied" という一連のファイル/ディレクトリが返されるだけです (WSL を使用しているためだと思います)。そのため、どこかに別の mysql.sock が存在するかどうかは確認していません。
/etc/mysql/my.cnf
また、これは -> を指しているだけであることもわかっています/etc/alternatives/my.cnf
。これには次の内容のみが含まれています (いくつかのコメントを除く)。
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
答え1
- MySQLを停止します(sudo systemctl stop mysql)
- 検証プロセスが停止しました
- --skip-grant-tables で MySQL を起動します
あるいは、mysqlを消去します: sudo apt purge mariadb-server mysql-common /etc/mysqlと/var/lib/mysqlが空/削除されていることを確認します
再インストール