3

ローカルホストで MySQL を実行しようとしています。これは以前はなかったのですが、インストール時sudo apt-get install mysql-serverに初期パスワードを要求されませんでした。

パスワードを「リセット」するための回答を検索し、ディレクトリのアクセス許可と戦った後、現在、次の状態にあります。

mysqld_safe ソリューション:

  • コンピューターを再起動したmysql -u root -p後、パスワードの入力を求められ、パスワードを入力すると、ERROR 1698 (28000): Access denied for user 'root'@'localhost'
  • 代わりにmysql -u root(パスワードなしで)試すと、次のように表示されますERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
  • を介してパスワードをリセットすることについて他の人が投稿したアドバイスを実行するmysqld_safe --skip-grant-tablesと、途中で問題が発生します。
    • まず私が走るsudo service mysql stop
    • sudo mysql_safe --skip-grant-tablesすると言うだろうmysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.
    • 私はそれを修正することができsudo mkdir -p /var/run/mysqldますsudo chown mysql /var/run/mysqld
    • この後、runningmysqld_safeはメッセージとともに実行され、Starting mysqld daemon with databases from /var/lib/mysqlハングします。そしてCtrl+Cは私をそこから抜け出させません。
    • 新しいターミナル ウィンドウで、実際に接続しmysql -u rootmysql>プロンプトを表示できるようになりました。
    • use mysql; update user set authentication_string=password('0000') where user='root';flush privileges;メッセージで行が正常に更新されたことを通知する新しいパスワードを設定できますRows matched: 1 Changed: 1 Warnings: 1
    • 警告には次のように記載されています。'PASSWORD' is deprecated and will be removed in a future release.
    • そして、これらすべての後、私は振り出しに戻りました。プロセスはまだハングしているため、再起動する必要がありkillall mysqld_safeますno process found。再起動して新しいパスワード0000を入力すると、アクセスが拒否されます。

システムはLinux 4.15.0-48-generic #51-Ubuntu SMP.

mysqladmin ソリューション

mysqladmin -u root password '0000'(なしでsudo)実行すると、次のようになります。

mysqladmin: 'localhost' でサーバーに接続できませんでした

エラー: 'ユーザー 'root'@'localhost' のアクセスが拒否されました''

で実行するとsudo、次のようになります。

mysqladmin: [警告] コマンド ライン インターフェイスでパスワードを使用すると、安全でない可能性があります。

警告: パスワードはプレーン テキストでサーバーに送信されるため、SSL 接続を使用してパスワードの安全性を確保してください。

この最後のものは、パスワードの変更が行われたかどうかに関して、実際には何も教えてくれません。拒否されたかどうか(エラーではなく警告であるため、通過する必要があると思います)、どちらの場合でも、接続しようとする0000と「アクセスが拒否されました」と表示されます。

これを修正する方法についてのアドバイスは大歓迎です。

4

1 に答える 1

0

問題をmysql直接解決したわけではありません。しかし、私にとっては、許容できる解決策は別のデータベース ソフトウェアに切り替えることでしたが、それはまだ MySQL システムであり、私を立ち上げて実行することができました。したがって、誰かが私のように機能しない既存のソリューションに行き詰まった場合、おそらくこれは、あなたが道を歩み、最終的にコードを書き直すのに役立つでしょう.

私がしたことは:

  1. mysqlシステムからパージされました
  2. 手動で削除/etc/mysqlし、/var/lib/mysql(この手順が必要かどうかは不明)
  3. apt cleanapt autoremoveapt update
  4. インストール済みmariadb
  5. これらの指示に従って、タイムアウトのバグを取り除きました
  6. との接続が常に失敗し続けるmysqld_safe --skip-grant-tablesため、すべての権限を持つ新しいユーザーを作成する方法を使用しましたroot

PHP + MariaDB が再び機能するようになりました。

于 2019-05-04T02:09:53.177 に答える