macOS Catalina Homebrew Проблемы с установкой mariadb

Изменить 2020-10-12:

У меня macOS 10.15.7, версии в формулах варки 10.5.6для mariadbи 8.0.21для mysql. (вы можете проверить их в /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/{mariadb,mysql}.rb).

Mysql отлично работает после чистой установки brew uninstall mysqlи удаления всего, что связано в $(brew --prefix), но mariadb по-прежнему не будет работать brew unlink mysql && brew link mariadb && brew services start mariadbбез удаления файлов базы данных mysql в $(brew --prefix).

Оригинальный вопрос:

Итак, я использую macOS 10.15.2 Catalina и пытаюсь установить mariadb(10.4.11, последняя версия) с помощью Homebrew.

После запуска brew install mariadbbrew предупредил, что postinstalllationне удалось завершить успешно:

==> Postinstalling mariadb
==> /usr/local/Cellar/mariadb/10.4.11/bin/mysql_install_db --verbose --user=me --basedir=/usr/local/Cellar/mariadb/10.4.11 --datadir=
Last 15 lines from /Users/me/Library/Logs/Homebrew/mariadb/post_install.01.mysql_install_db:

    shell> /usr/local/Cellar/mariadb/10.4.11/bin/mysql -u root mysql
    mysql> show tables;

Try 'mysqld --help' if you have problems with paths.  Using
--general-log gives you a log in /usr/local/var/mysql that may be helpful.

The latest information about mysql_install_db is available at
https://mariadb.com/kb/en/installing-system-tables-mysql_install_db
You can find the latest source at https://downloads.mariadb.org and
the maria-discuss email list at https://launchpad.net/~maria-discuss

Please check all of the above before submitting a bug report
at http://mariadb.org/jira

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

Я новичок в mariadb/mysql, поэтому я следовал этому руководству с mariadb.com (как указал @klanomath, оно устарело (2016)) и запустило mysql_install_db:

$ mysql_install_db
WARNING: The host 'mymac' could not be looked up with /usr/local/Cellar/mariadb/10.4.11/bin/resolveip.
This probably means that your libc libraries are not 100 % compatible
with this binary MariaDB version. The MariaDB daemon, mysqld, should work
normally with the exception that host name resolving will not work.
This means that you should use IP addresses instead of hostnames
when specifying MariaDB privileges !
Installing MariaDB/MySQL system tables in '/usr/local/var/mysql' ...
2020-02-07 20:26:33 0 [ERROR] InnoDB: Invalid flags 0x4800 in ./ibdata1
2020-02-07 20:26:33 0 [ERROR] InnoDB: Plugin initialization aborted with error Data structure corruption
2020-02-07 20:26:33 0 [ERROR] Plugin 'InnoDB' init function returned error.
2020-02-07 20:26:33 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2020-02-07 20:26:33 0 [ERROR] Unknown/unsupported storage engine: InnoDB
2020-02-07 20:26:33 0 [ERROR] Aborting

И лог от mysqld:

$ mysqld --general-log
2020-02-07 20:44:45 0 [Note] mysqld (mysqld 10.4.11-MariaDB-log) starting as process 78097 ...
2020-02-07 20:44:45 0 [Warning] Setting lower_case_table_names=2 because file system for /usr/local/var/mysql/ is case insensitive
2020-02-07 20:44:45 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2020-02-07 20:44:45 0 [Note] InnoDB: Uses event mutexes
2020-02-07 20:44:45 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
2020-02-07 20:44:45 0 [Note] InnoDB: Number of pools: 1
2020-02-07 20:44:45 0 [Note] InnoDB: Using SSE2 crc32 instructions
2020-02-07 20:44:45 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
2020-02-07 20:44:45 0 [Note] InnoDB: Completed initialization of buffer pool
2020-02-07 20:44:45 0 [ERROR] InnoDB: Invalid flags 0x4800 in ./ibdata1
2020-02-07 20:44:45 0 [ERROR] InnoDB: Plugin initialization aborted with error Data structure corruption
2020-02-07 20:44:46 0 [Note] InnoDB: Starting shutdown...
2020-02-07 20:44:46 0 [ERROR] Plugin 'InnoDB' init function returned error.
2020-02-07 20:44:46 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2020-02-07 20:44:46 0 [Note] Plugin 'FEEDBACK' is disabled.
2020-02-07 20:44:46 0 [ERROR] Could not open mysql.plugin table. Some plugins may be not loaded
2020-02-07 20:44:46 0 [ERROR] Unknown/unsupported storage engine: InnoDB
2020-02-07 20:44:46 0 [ERROR] Aborting

Я провел некоторое исследование, но не нашел ничего полезного. Как завершить mariadbустановку? Любая помощь приветствуется!

Связанные инструкции , вероятно, устарели (2016-08-16!). Пожалуйста, добавьте вывод brew list! Кстати: у меня не было проблем с установкой mariadb 10.4.11 в моей лабораторной среде.
@klanomath О, я этого не заметил! В результате brew listя установил всего сотни строк формул, включая mariadbпоследнюю версию, не включая более раннюю версию.
@klanomath вывод , brew listбез percona* или mysql :)
@klanomath спасибо за это! На самом деле я удалил/отключил mariadb@10.3. Так что нет, он не работает в данный момент. Теперь я отключил mariadb и вместо этого установил mysql, и до сих пор он отлично работал. Я действительно ценю твою помощь!
По моему мнению, mariadb10.4-postinstall ожидал либо отсутствия каталога данных, либо пустого каталога данных - и произошел сбой из-за непустого каталога данных mariadb10.3 - мне не удалось воспроизвести ошибку, с которой вы столкнулись, хотя установка mariadb10.3/10.4 несколько раз немного разными методами.
У меня были проблемы с установкой mariadb 10.5 и переходом на 10.4, и у меня все еще есть те же проблемы. У меня тоже MacOS Catalina 10.15.6.

Ответы (1)

У меня есть решение, которое сработало для меня. Я пытался установить последнюю версию mariadb (10.5.6). Сначала остановите любую службу mysql, которая у вас может быть запущена.

brew services stop mariadb

Далее вам нужно удалить содержимое/usr/local/var/mysql sudo rm -rf /usr/local/var/mysql

Затем вам нужно создать файлы установки базы данных

mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mariadb)" --datadir=/usr/local/var/mysql --tmpdir=/tmp

Это позволит получить местоположение mariadb Cellar, установленное brew, и выполнить установку файла db. Следующий шаг — запустить mariadb.brew services start mariadb

Теперь нам нужно установить пароль. Не заморачивайтесь с mysql_secure_connectionили mariadb-secure-connection. у меня были проблемы с ними

Войдите в mysqlsudo mariadb -u root

Теперь нам нужно изменить пароль пользователя root

> use mysql;

> ALTER USER 'root'@'localhost' IDENTIFIED BY 'mypassword';

> flush privileges;

> quit

Теперь вы можете попробовать войти в mariadbmariadb -u root -p

Спасибо за решение! Я новичок в mysql/mariadb, могу ли я спросить, почему мне нужно удалить /usr/local/var/mysql? Это из-за несовместимого формата базы данных? Использует ли mariadb каталог /usr/local/var/mysql?
Вам нужно удалить, так как есть ошибка с действиями после установки mariadb. У Mariadb также есть каталог /usr/local/var/mysql.