web-dev-qa-db-ja.com

Ubuntu 16.04でmysqlのインストールがスタックする(rootユーザー権限なし)

私のubuntu 16.04サーバーでは、次のコマンドでmysqlをインストールしようとしています

Sudo apt-get install mysql-server

メッセージが出るたびに:

update-alternatives: using /etc/mysql/mysql.cnf to provide /etc/mysql/my.cnf (my.cnf) in auto mode 
Renaming removed key_buffer and myisam-recover options (if present) 
Checking if update is needed.
This installation of MySQL is already upgraded to 5.7.16, use --force if you still need to run mysql_upgrade

私は押す必要があります Ctrl+z それを止めるために。 /var/log/mysql/error.logのログファイルを確認しましたが、最後の10行にこの結果が示されています。

2017-01-18T09:07:30.329930Z 0 [Note] InnoDB: Buffer pool(s) load completed at 170118  9:07:30
2017-01-18T09:07:30.335086Z 0 [Warning] Failed to set up SSL because of the following SSL library error: SSL context is not usable without certificate and private key
2017-01-18T09:07:30.335137Z 0 [Note] Server hostname (bind-address): '127.0.0.1'; port: 3306
2017-01-18T09:07:30.335157Z 0 [Note]   - '127.0.0.1' resolves to '127.0.0.1';
2017-01-18T09:07:30.335216Z 0 [Note] Server socket created on IP: '127.0.0.1'.
2017-01-18T09:07:30.349491Z 0 [Note] Event Scheduler: Loaded 1 event
2017-01-18T09:07:30.349749Z 0 [Note] Execution of init_file '/var/lib/mysql-files/tmp.sJ5rMac6mK' started.
2017-01-18T09:07:30.350543Z 1 [ERROR] 1396  Operation ALTER USER failed for 'root'@'localhost'
2017-01-18T09:07:30.350737Z 0 [Note] Execution of init_file '/var/lib/mysql-files/tmp.sJ5rMac6mK' ended.
2017-01-18T09:07:30.350864Z 0 [Note] mysqld: ready for connections.

再起動後、mysql -u rootでmysqlにログインしました。 mysql内では、新しいユーザーを作成したり、特権を変更したりすることは一切できません。デフォルトのデータベースを参照するだけです

  • information_schema
  • テスト

show grantsと入力すると、次の結果が表示されます

+--------------------------------------+
| Grants for @localhost                |
+--------------------------------------+
| GRANT USAGE ON *.* TO ''@'localhost' |
+--------------------------------------+

これはかなり奇妙です。これを確認するために、user_privilegesinformation_schemaテーブルを確認しました。

+----------------+---------------+----------------+--------------+
| GRANTEE        | TABLE_CATALOG | PRIVILEGE_TYPE | IS_GRANTABLE |
+----------------+---------------+----------------+--------------+
| ''@'localhost' | def           | USAGE          | NO           |
+----------------+---------------+----------------+--------------+

ルートアクセスを有効にして作成、更新するにはどうすればよいですか?

6
user3177667

簡単な解決策は、apt-get操作の実行中にSudo killall mysqldすることです。

Apt操作は、その後エラーなしで実行され続けました(!)

ソース: https://bugs.launchpad.net/ubuntu/+source/mysql-5.7/+bug/1596815

18

やっと回避策が得られました。これが私がしたことです

  • Sudo apt purge mysql*を使用してmysqlをアンインストールします
  • /etc/mysqlフォルダーを削除
  • /var/lib/mysql, /var/lib/mysql-files, /var/lib/mysql-keringフォルダーを削除します。
  • リブート
  • Sudo apt-get install mysql-serverを使用してmysqlをインストールします

今回は、mysqlはスタックすることなく正常にインストールされました。インストール中に、rootパスワードの入力を求められ、パスワードを提供しました。インストール後、指定されたパスワードでrootでログインしました。今回は新しいユーザーを作成し、すべてを更新するとうまくいきます。さて、ここにshow grantsの結果があります:

+---------------------------------------------------------------------+
| Grants for root@localhost                                           |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION        |
+---------------------------------------------------------------------+

なぜ最初はうまくいかなかったのかはまだわかりませんが。 cnfファイルのみを削除してみましたが、うまくいきませんでした。 /var/lib内のすべてのmysqlフォルダーを削除すると、機能しました。そのため、/var/lib/msyqlディレクトリ内に新しいユーザー(rootユーザーも含む)を作成できないファイルがあったと思います。

7
user3177667

Mysql_server構成の問題を解決するために何ヶ月も探していましたが、これは他のものをインストールするとフリーズするため、プロセスを強制終了し、mysqlを手動で起動する必要があります。また、これにより、コンピューターを再起動するたびにMySQLを手動で起動する必要がありました。

/var/lib/dpkg/info/mysql-server-5.7.postinstを編集しましたが、configure)部分が何も返さないため、フリーズするだけです。

そのファイルを編集し、configureの最後に)セクション(abort-upgrade | abort-remove | abort-configureのセクションの前)を追加する必要があります。このような:

    # To avoid downgrades. This has to happen after the database is created, or --initialize will fail
touch $mysql_statedir/debian-5.7.flag

    exit 0   # Corregimos el bug del postinst de mysql

;;
abort-upgrade|abort-remove|abort-configure)
2
user2656723