Ubuntu 16.04 LTSを使用しています。 mysqlのrootパスワードとは何ですか?入ったら
mysql -u root -p
パスワードを入力するように求められます。パスワードがわからず、パスワードも機能しません。 Mysqlはプリインストールされているため、ルートパスワードは選択しませんでした。もう一度インストールしようとすると、
Sudo apt-get install mysql-server
Mysql-serverはすでに最新バージョンであると言われています(5.7.18-0ubuntu0.16.04.1)
何か助け、ヒント?ありがとう。
2つのオプション:
最初にmysqlをパージします(データベースがまだない場合のみ):
つかいます
apt-get purge mysql-server
パージしてから
apt-get install mysql-server
単純に再インストールします。インストール中にパスワードの入力を求められます。これは最も簡単で最速の方法ですが、phpmyadminなどの一部のプログラムが既存のMySQLに既に接続している場合は問題が発生する可能性があるため、使用することをお勧めします
または、次を実行します。
Sudo service mysql stop
次に、セーフモードを開始します
Sudo /usr/bin/mysqld_safe --skip-grant-tables &
ホストとしてlocalhostを選択します(最後のコマンドの後にコマンドプロンプトが表示されないため、メッセージの後にStarting mysqld daemon with databases from [...]
と入力して次のコマンドを入力します)
mysql -h localhost
mysqlを選択します
USE mysql
(新しいパスワードを新しいパスワードに置き換えてください!)タイプ
UPDATE mysql.user
SET authentication_string=PASSWORD('new_password')
WHERE user='root' AND Host='localhost';
で終了
quit
そしてMySQLを再起動します
Sudo mysqladmin shutdown
Sudo service mysql start
編集
このエラーは、MySQLソケットと関係があります。最初に、システム上のすべてのソケットファイルを検索します。
Sudo find / -type s
あなたのソケットはこれに似たものでなければなりません
/var/lib/mysql/mysql.sock
(重要なのは/mysql.sock
部分です)
ソケットが開かれている場所を見つけたら、次の行を追加または編集します
/etc/my.cnf
ソケットファイルへのパスを持つファイル:
プット
[mysqld]
最初に
socket=/path/to/your/socket/
ファイルの最後に。
2.オプションをもう一度試してください。うまくいかない場合は、この説明を続けてください。
これで問題が解決しない場合は、何かがmy.cnfの場所を上書きします。その結果、my.cnfファイルが存在するはずの場所にソケットが見つかりません。次に、mysqlコマンドラインクライアントを実行しようとすると、my.cnfを読み取ってソケットを見つけますが、サーバーが作成した場所から外れるため、見つかりません。したがって、ソケットの場所を気にしない限り、my.cnfを一致するように変更するだけで機能します。
これを修正するには、mysqld
プロセスをシャットダウンすることから始めます。
pkill -9 mysqld
これを行った後、/ var/run/mysqld /でpidファイルを探して削除することをお勧めします。
ソケットの権限が、mysqldが実行しているユーザーが読み書きできるようになっていることを確認してください。簡単なテストは、完全に読み書きできるように開いて、それがまだ機能するかどうかを確認することです
chmod 755 /var/run/mysqld/mysqld.sock
ソース:
https://dev.mysql.com/doc/refman/5.7/en/mysql-commands.html
https://ubuntu.flowconsult.at/en/mysql-set-change-reset-root-password/
新しいmy-sql5.7では、パスワードが空のままの場合、auth_pluginが使用されます。
その場合、Sudo
特権でログインします。
$ Sudo mysql -u root -p
ログイン後、これを使用してパスワードを更新できます。
$ ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new-password';
完全な参照チェックについては、 こちら です。
EDIT:これも使用できます(-u root
なし):
$ Sudo mysql
$ ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new-password';
MySQL 5.7の場合、デフォルトのパスワードがログに出力されます。簡単なgrepで返すことができます。
grep 'temporary password' /var/log/mysqld.log
参照: https://www.percona.com/blog/2016/05/18/where-is-the-mysql-5-7-root-password/
https://dev.mysql.com/doc/refman/5.7/en/linux-installation-yum-repo.html
https://stackoverflow.com/questions/33991228/what-is-the-default-root-pasword-for-mysql-5-7
https://dba.stackexchange.com/questions/127537/setting-root-password-in-fresh-mysql-5-7-installation
UBUNTU 16.04およびMYSQL 5.7.20
ADDBの指示がまったく役に立たなかった。検索後、次のことを発見しました(オプション2の小さな書き直し):
Sudo /etc/init.d/mysql stop
Sudo mkdir /var/run/mysqld/
Sudo chown mysql /var/run/mysqld/
Sudo mysqld_safe --skip-grant-tables &
mysql -uroot
use mysql;
update user set authentication_string=PASSWORD("NEW_PASSWORD_GOES_HERE") where User='root';
flush privileges;
quit;
Sudo /etc/init.d/mysql stop
Sudo /etc/init.d/mysql start
参照: http://rricketts.com/reset-root-password-mysql-5-7-ubuntu-16-04-lts/
私の好ましい方法:
Mysqlユーザー「debian-sys-maint」(ルート同等)を使用しました。パスワードは/etc/mysql/debian.cnfにあります。このユーザーとしてMysqlにログインした後、Mysqlユーザーのパスワードを変更します。
USE mysql
SELECT root@localhost;
ALTER USER user IDENTIFIED BY 'auth_string';
ALTER USER 'Name_of_user_to_be_modified'@'Hostname (ie:localhost)' IDENTIFIED BY 'NEW_PASSWORD';
flush privileges;
exit;
リファレンス: https://serverfault.com/questions/9948/what-is-the-debian-sys-maint-mysql-user-and-more