Если вы запустите brew info, он даже предупредит вас не устанавливать их рядом, потому что они будут конфликтовать:
brew info mysql
mysql: stable 8.0.13 (bottled)
Open source relational database management system
https://dev.mysql.com/doc/refman/8.0/en/
Conflicts with:
mariadb (because mysql, mariadb, and percona install the same binaries.)
mariadb-connector-c (because both install plugins)
mysql-cluster (because mysql, mariadb, and percona install the same binaries.)
mysql-connector-c (because both install MySQL client libraries)
percona-server (because mysql, mariadb, and percona install the same binaries.)
Not installed
На самом деле, запустите brew info mariadb
, и он скажет, что это Drop-in Replacement
:
brew info mariadb
mariadb: stable 10.3.12 (bottled)
Drop-in replacement for MySQL
https://mariadb.org/
Conflicts with:
mariadb-connector-c (because both install plugins)
mysql (because mariadb, mysql, and percona install the same binaries.)
mysql-cluster (because mariadb, mysql, and percona install the same binaries.)
mysql-connector-c (because both install MySQL client libraries)
mytop (because both install `mytop` binaries)
percona-server (because mariadb, mysql, and percona install the same binaries.)
/usr/local/Cellar/mariadb/10.3.12 (658 files, 174.4MB) *
Poured from bottle on 2019-01-25 at 09:50:26
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/mariadb.rb
==> Dependencies
Что такое вставная замена? Это относится к возможности заменить один программный компонент другим без необходимости внесения каких-либо изменений в код или конфигурацию, что не приведет к негативным последствиям.
Следовательно, и mysql, и mariadb работают с mysql.server start
, оба входят в mysql с использованием mysql -h localhost -u root -p
, оба ссылаются на один и тот же каталог данных в /usr/local/var/mysql
, обе используют одинаковые команды, такие как mysqldump
, и все это указывает что эти два работают взаимозаменяемо. Они не могут совпадать, если вы не установите их на разных виртуальных машинах, таких как vmware, или не запустите их в контейнере docket (что было предложено в другом ответе).
Но если вы не можете запустить их на отдельных виртуальных машинах или в контейнере docket, тогда я настоятельно рекомендую удалить MySQL и использовать MariaDB, поскольку MariaDB сохраняет совместимость с MySQL, но также содержит другие функции, такие как CHECK CONSTRAINTS
.
Так вы бы удалили MySQL и вместо него установили MariaDB. Обратите внимание, что в моей системе я использовал mysql@5.7 через HomeBrew, поэтому я указываю, что вместо mysql:
brew remove mysql@5.7
brew cleanup
И это все. Некоторые руководства предлагают удалить отдельные каталоги, такие как эта:
sudo rm /usr/local/mysql
sudo rm -rf /usr/local/var/mysql
sudo rm -rf /usr/local/mysql*
sudo rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
sudo rm -rf /Library/StartupItems/MySQLCOM
sudo rm -rf /Library/PreferencePanes/My*
Но в моей системе у меня не было MySQL на панели настроек, в Launch или даже в автозапуске. Таким образом, единственное место, где я был, это действительные данные базы данных в / usr / local / var:
/usr/local/var/mysql
Но поскольку MariaDB является заменой для замены, вам не нужно удалять эти данные, и MariaDB будет использовать их после установки.
Итак, чтобы установить MariaDB:
brew install mariadb
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 2 taps (homebrew/core and homebrew/services).
==> New Formulae
...
==> Updated Formulae
...
==> Deleted Formulae
...
==> Downloading https://homebrew.bintray.com/bottles/mariadb-10.3.12.mojave.bottle.tar.gz
######################################################################## 100.0%
==> Pouring mariadb-10.3.12.mojave.bottle.tar.gz
==> Caveats
A "/etc/my.cnf" from another install may interfere with a Homebrew-built
server starting up correctly.
MySQL is configured to only allow connections from localhost by default
To connect:
mysql -uroot
To have launchd start mariadb now and restart at login:
brew services start mariadb
Or, if you don't want/need a background service you can just run:
mysql.server start
==> Summary
? /usr/local/Cellar/mariadb/10.3.12: 658 files, 174.4MB
Итак, как вы можете видеть из установки, а также запустив brew info mariadb
, mariadb был установлен на
/usr/local/Cellar/mariadb/10.3.12
И исполняемый файл mysql в вашем $ PATH указывает на этот двоичный файл MariaDB:
$ which mysql
/usr/local/bin/mysql
$ ls -l /usr/local/bin/mysql
lrwxr-xr-x 1 viggy admin 35 Jan 25 09:50 /usr/local/bin/mysql -> ../Cellar/mariadb/10.3.12/bin/mysql
Для меня, так как у меня уже был каталог данных с mysql@5.7, MariaDB смог использовать его, и у меня все еще был доступ к моим данным (хотя до удаления mysql все еще рекомендуется создать резервную копию базы данных с помощью mysqldump) :
mysql -h localhost -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 10.3.12-MariaDB Homebrew
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
USE my_old_database;
Database changed
MariaDB [my_old_database]>
Как видите, теперь он использует MariaDB.