最近、ルートパスワードを変更しようとしたときに忘れた問題が発生しました。ところで何とかmysqlサービス自体を完全に壊すことができたようです。そして、他の多くのサービスでもサーバーへの接続に問題があったからです。愚かなことが起こる前に完全に再インストールするのが最善だと決めました。使用中のすべてのコンポーネントを削除するには、apt-get purge mysql*
コマンドを実行してもmysqlは影響を受けないようです。何度も試して再起動した後、ついにmysqlをクリアしたようなときにインストールしようとしましたが、設定が表示されず、mysqlコマンドを使用したときに試みたときに尋ねられませんでした。ユーザーがrootパスワードを変更しようとしても大丈夫だと言いますが、パスワードは機能しません。私は非常に混乱し、欲求不満を感じました。これが最初に起こったわけではなく、mysqlを再インストールすることは実際に私にとって最大の悪夢です。私を助けてください。私は私が何をすべきか全く知りません。
編集:実際にはパスワードを設定する必要がありましたが...どのパスワードでもログインでき、mysql_secure_installationを使用した後もリモート接続は実際には機能しませんでした。私は実際のfで何が起こったのかわかりませんが、mysqlのインストールが完全に壊れています。
答え1
設定中に誤って「匿名ユーザー」を追加した可能性があります。 mysqlデータベースからユーザーを削除する必要があります。
>delete from mysql.user where User='';
次に、すべてのホストで使用できる新しい「root」ユーザーを作成します。
>create user 'root'@'%' identified by 'your_new_password_here';
次に、自分にすべての権限を与えます。
>grant all on *.* to 'root'@'%'; flush privileges;
(私の記憶が正しい場合、許可はサーバー上で行われ、リモートクライアントは許可されません。)
これにより、ルートとパスワードのみが有効になります。 secure_installationオプションは以前私を混乱させました。とにかく理解するためには、マニュアルがより良いです。
接続の問題については、バインドアドレスを変更する必要があるかもしれません。 mysql / mariadbにはbind_address=127.0.0.1.
デフォルトでlocalhostのデフォルト値があります。だからその機械だけあるのです。別のコンピュータを許可するには、サーバーで次のように変更します。bind_address=0.0.0.0
mysqlで現在のバインディングアドレスを確認できます。新しいルートとパスワードを使用してサーバーにログインすると、
>show variables like 'bind_address';
次の内容が表示されます。
| Variable_name | Value |
+---------------+---------+
| bind_address | 0.0.0.0 |
+---------------+---------+
0.0.0.0でない場合は変更する必要があります。
.cnfファイルを見つけるのは難しいかもしれません。たとえば、私の場所は次のようになります。
/etc/mysql/mariadb.conf.d/50-server.cnf
しかし、多くの人がそれを見つけるのが難しいので、バージョン/リリース(?)とは非常に異なると思います。
ここであなたがすることはそれを開くことですどの知的財産権。さらにセキュリティが必要な場合は、クライアントIPを追加したり、複数のIPを追加したりできます。しかし、それはこれに限定されます。 (私はいつも0.0.0.0と良いパスワードを使います。それが私が必要とするすべてです。)