-1

Ubuntu 10.10 で新しくインストールした mySQL サーバーのコピーで重大な問題が発生しています。apt でインストールし、その時点でパスワードを指定しました。インストールはうまくいきましたが、サーバーが非常に奇妙な動作をしています。

まず、データベースをテストするために、php ファイルを作成しました。

mysql_connect("localhost", "root", "myPassword") or die(mysql_error());

ここで、myPassword は、インストール中に尋ねられたときに入力したものです。これにより、アクセス拒否エラーが発生しました。私が読んだ解決策を追求するために、mySQLサーバーにシェルインしようとしました。通常の構文は機能せず、「アクセスが拒否されました」以外の何かを取得するには、やらなければなりませんでした

mysql -u root password myPassword

ただし、mysql シェルの代わりに、パラメーターと変数のリストを吐き出すだけです。この時点で、私は困惑しています。ここ数年、コマンド ラインを使用して mySQL を操作していませんが、この動作はどれもなじみがなく、サーバーと対話する方法が見つかりません。

どんな助けでも大歓迎です。

4

2 に答える 2

2

パスワードを提供するための mysql コマンドライン パラメータは であり-p、 ではありませんpassword。スペースも空ける必要があります。例えば:

mysql -uroot -pmyPassword

パスワードが公開される危険を冒したくない場合は...

mysql -uroot -p

...パスワードの入力を求められ、入力した文字が非表示になります。

于 2012-04-26T01:31:23.480 に答える
0

apparmor がインストールされている場合 (これがデフォルトです)、ubuntu によって設定された狭く定義されたデフォルトの外に出ると、問題が発生する可能性があります。

mysql が触れることができるものは、次のように定義されています。/etc/apparmor.d/abstractions/mysql

ソケット ファイルを別の場所に置くと、アクセス拒否メッセージが表示されます。

より詳しく調べるには、次のように mysql クライアントを実行します。

strace -e file mysql <blah blah>

これにより、システムレベルのファイル操作が stderr に出力されます。次に、アクセス許可エラーの原因となっている操作を正確に確認できます。問題が見られない場合は、-e network代わりに使用して、ネットワーク操作を確認してください。

于 2012-04-26T01:40:45.183 に答える