新しいmacbookpro(OS X 10.8.2)を入手し、その上にmysqlをセットアップしようとしています。これまでのところ、インストールすることはできましたが、rootユーザーアクセス(またはそのことについてはどのユーザー)も取得できません。これをPython
に使用する予定ですが、他のコンピューターではMYSQL(MAMPなし)のみを使用しており、そのままにしておくことを好みます。
参考までに、私は次のことを行いました。
_$ alias mysql=/usr/local/mysql/bin/mysql $ Sudo /Library/StartupItems/MySQLCOM/MySQLCOM start $ alias mysqladmin=/usr/local/mysql/bin/mysqladmin
_
mysql
または_mysql -u root -p
_と入力すると、次のように表示されます。
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
または
ERROR 1045 (28000): Access denied for user 'jmitch'@'localhost' (using password: NO)
使用する言い回しによって異なります
MYSQLは私のシステム環境設定で実行されています。ご協力ありがとうございました。
パッケージを更新すると、アップデーターがルートパスワードを上書きした可能性があります。
それを復元するには:
Mysqlddeamonsを停止します。
$ Sudo service mysqld stop
Mysql/binディレクトリに移動します
$ cd /usr/bin
このオプションでmysqlデーモンを起動します。
$ Sudo mysqld_safe --skip-grant-tables
別のターミナルを開き、mysqlセッションを開いてこれを実行します。
$ mysql
mysql> use mysql;
see Note1 below for next line.
mysql> UPDATE user SET password=PASSWORD('YOUR_NEW_PASSWORD_HERE') WHERE user = 'root';
mysql> exit;
次に、mysqld_safeプロセスを強制終了し、mysqldを通常どおり再起動します。
$ Sudo service mysqld start
注1:password
は、バージョン5.7より前のテーブルmysql.user
の列名です。その後、それはauthentication_string
になりました。それに応じて更新ステートメントを変更します。
mac OSX 10.9 Mavericksでは、mysqld_safeおよびserviceスクリプトの代わりに、support-filesディレクトリの「mysql.server」スクリプトを使用しました。
$Sudo ./mysql.server stop
$Sudo ./mysql.server start --skip-grant-tables
$ mysql
mysql> use mysql;
mysql> UPDATE user SET password=PASSWORD('YOUR_NEW_PASSWORD_HERE') WHERE user = 'root';
mysql> exit;
$Sudo ./mysql.server stop
$Sudo ./mysql.server start
MountainLionのターミナルからMAMPのMySQLにアクセスしようとしても同様の問題が発生していました。
--no-defaultsフラグは私のためにそれを解決しました。
/Applications/MAMP/Library/bin/mysql --no-defaults -u root -proot -h localhost
MySQL 5.7の場合、authentication_string列を変更するだけでは機能しないことを追加したいと思います。これは、MySQLが実際にroot認証にこれらの値を使用することはなく、プラグインを使用するためです。私が知る限り、このプラグインは、あなたがホストアカウントのrootでもあることを確認します(したがって、Sudo mysql -u rootにする必要があります)。
これを機能させることができた唯一の方法は、これを実行することでした。
UPDATE mysql.user
SET authentication_string=PASSWORD(''), plugin=''
WHERE mysql.user = 'root';
5.7の公式MySQLドキュメントではこれについて言及されていないことにも注意してください。この文書を手紙に従えば、どこにも行き着きません。