Шаг после установки не завершен успешно MySQL Mac OS Sierra

[(pyEnv) Anants-MacBook-Pro:litibackend anantchandra$ brew postinstall mysql
==> Postinstalling mysql
==> /usr/local/Cellar/mysql/8.0.11/bin/mysqld --initialize-insecure --user=anantchandra --basedir=/usr/local/Cellar/mysql/8.0.11 --datadir=/usr/local/var/mysql --tmpdir=/tmp
Last 15 lines from /Users/anantchandra/Library/Logs/Homebrew/mysql/post_install.01.mysqld:
2018-06-15 04:41:04 -0700

/usr/local/Cellar/mysql/8.0.11/bin/mysqld
--initialize-insecure
--user=anantchandra
--basedir=/usr/local/Cellar/mysql/8.0.11
--datadir=/usr/local/var/mysql
--tmpdir=/tmp

2018-06-15T11:41:04.901191Z 0 [System] [MY-013169] [Server] /usr/local/Cellar/mysql/8.0.11/bin/mysqld (mysqld 8.0.11) initializing of server in progress as process 37841
2018-06-15T11:41:04.903504Z 0 [ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.
2018-06-15T11:41:04.903537Z 0 [ERROR] [MY-010119] [Server] Aborting
2018-06-15T11:41:04.903701Z 0 [System] [MY-010910] [Server] /usr/local/Cellar/mysql/8.0.11/bin/mysqld: Shutdown complete (mysqld 8.0.11)  Homebrew.

Warning: The post-install step did not complete successfully
You can try again using `brew postinstall mysql`

3 ответов


я смог вернуться к 5.7 для тех, кто хочет:

brew uninstall mysql
brew install mysql@5.7
brew link --force mysql@5.7
mysql.server start
mysql_secure_installation

после всего этого я вернулся в 5.7 со всеми моими базами данных неповрежденными. В моем случае, я знал, что данные в базах данных не были решающими, поэтому я не пытался сделать резервную копию данных заранее. Отлично сработало. Если у вас есть незаменимые данные в локальных базах данных, вы можете действовать осторожно. Я не терял данные, но я не хочу, чтобы кто-то еще терял данные по моему совету. ;)

обычно, я не имейте в виду обновление MySQL, но 8.0, похоже, имеет проблемы совместимости, которые я хотел бы проверить, прежде чем идти вперед, и в то же время я предпочел бы вернуться к версии, которая не заставляет меня заниматься этими проблемами.


во-первых, резервное копирование содержимого каталога данных: /usr/local/var/mysql скопировать его в безопасное место.

ошибка происходит потому, что скрипт после установки проверяет, есть ли файл . По какой-то причине у вас нет этого файла. Затем скрипт postinstall пытается установить новую базу данных MySQL 8, запустив mysqld С --initialize-insecure но как каталог уже содержит некоторые данные из MySQL 5.7 скрипт останавливается.

вот часть correspoding сценария в mysql.rb:

  def post_install
    # Make sure the datadir exists
    datadir.mkpath
    unless (datadir/"mysql/user.frm").exist?
      ENV["TMPDIR"] = nil
      system bin/"mysqld", "--initialize-insecure", "--user=#{ENV["USER"]}",
        "--basedir=#{prefix}", "--datadir=#{datadir}", "--tmpdir=/tmp"
    end
  end

есть несколько возможных решений. Если вы все еще можете запустить свою базу данных MySQL 5.7, экспортируйте все с помощью mysqldump затем установите новую базу данных MySQL 8, удалив все содержимое в /usr/local/var/mysql а затем импортировать все обратно. Другое решение-использовать инструмент mysql_upgrade.

П. С.: Лично я пользуюсь формулой mysql@5.7 и я в будущем переключусь на MariaDB в.


установка или повторная установка, brew install mysql, создал каталог данных по умолчанию, и после установки не справится...

  1. просто переместите существующий каталог данных (это перемещает его в каталог брата, названный с идентификатором процесса оболочки):

    $ mv /usr/local/var/mysql /usr/local/var/mysql-$$
    

    или могут потребоваться привилегии суперпользователя...

    $ sudo mv /usr/local/var/mysql /usr/local/var/mysql-$$
    
  2. выполнить:
    $ brew postinstall mysql