8

我成功安装了 mariadb,但 MAMP 继续使用位于其 bin 文件夹中的 mysql 副本;具体来说:

/应用程序/MAMP/库/bin/mysql

如何让 MAMP 使用 mariadb,在我的情况下,它位于 /usr/local/bin/mysql 中?

我尝试在 MAMP 的 bin 文件夹中创建一个指向 /usr/local/bin 的符号链接,但这不起作用。唔。

4

2 回答 2

3

这是我的做法,以便您可以使用 mysql 或 mariadb,因为 mariadb 是替代品(从内存中输入,所以如果有错误请告诉我)...

0)备份你的mysql数据库目录以防万一,并做一些mysql准备以防万一

$ cp -R /Applications/MAMP/db/mysql /Applications/MAMP/db/mysql.2013-02-06-1850.bak
$ /Applications/MAMP/bin/repairMysql.sh
$ /Applications/MAMP/bin/quickCheckMysqlUpgrade.sh
$ /Applications/MAMP/bin/upgradeMysql.sh

1) 复制或记下 my.cnf 文件中的一些设置。它可以位于各种不同的地方,所以要全部找到(有一堆):

$ locate my.cnf
/Applications/MAMP/conf/my.cnf
/etc/my.cnf
/usr/local/etc/my.cnf
/usr/local/etc/my.cnf.d
/usr/local/etc/my.cnf.d/client.cnf
/usr/local/etc/my.cnf.d/mysql-clients.cnf
/usr/local/etc/my.cnf.d/server.cnf

2)找出加载了哪个my.cnf(对于MAMP,它可能在/Applications/MAMP/conf/my.cnf)

$ /usr/local/bin/mysql --help | grep my.cnf
order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf 
$ /Applications/MAMP/Library/bin/mysql --help | grep my.cnf
order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /Applications/MAMP/conf/my.cnf ~/.my.cnf

3) 备份 /etc/my.cnf 中的 my.cnf 并编辑 my.cnf 以确保其中有一些参数,最重要的是端口、套接字和 datadir 设置,以便 mariadb 知道在哪里查找您的数据库文件:

$ sudo cp /etc/my.conf /etc/my.cnf.2013-02-06-1858.bak
$ sudo vi /etc/my.cnf
port     = 3306
socket   = /Applications/MAMP/tmp/mysql/mysql.sock 
datadir  = /Applications/MAMP/db/mysql
tmpdir   = /Applications/MAMP/tmp/mysql

4) 在 [mariadb] 部分添加您可能需要的任何 mariadb 特定配置选项

5)安装mariadb(我喜欢使用brew,但选择你的毒药)......你真的可以随时做到这一点

$ brew install mariadb

6) 从第二步的 my.conf 建立一个符号链接

$ sudo ln -s /Applications/MAMP/conf/my.cnf /etc/my.cnf

6a) 你可以把你的 my.cnf 放在任何地方,只要在 /etc/my.cnf 中有一个副本或链接...这里的目标是让 mariadb 和 MAMP 的 mysql 实现使用相同的配置设置。

7) 现在制作一个 shell 脚本来加载 apache 和 mariadb

$ mkdir -p ~/scripts/mamp
$ touch ~/scripts/mamp/startSomething.sh ~/scripts/mamp/stopSomething.sh
$ chmod ug+rx ~/scripts/mamp/*Something.sh

8) 获取/记下 apache 的当前启动/停止脚本(它可能不会有什么花哨的东西)

$ more /Applications/MAMP/bin/startApache.sh
$ more /Applications/MAMP/bin/stopApache.sh

9) 获取安装的mariadb路径,确保是mariadb版本

$ which mysql
/usr/local/bin/mysql
$ mysql --version
mysql  Ver 15.1 Distrib 5.5.29-MariaDB, for osx10.8 (i386) using readline 5.1

10) 现在编辑 startSomething.sh

# /bin/sh
/Applications/MAMP/Library/bin/apachectl start
/usr/local/bin/mysql.server start &

11) 对 stopSomething.sh 做同样的事情

# /bin/sh
/Applications/MAMP/Library/bin/apachectl stop
/usr/local/bin/mysql.server stop &

12)就是这样!开始或停止事情

$ ~/scripts/mamp/startSomething.sh
$ ~/scripts/mamp/stopSomething.sh

如果您想要原版 MAMP,请使用 MAMP 附带的 MAMP 应用程序。否则,用这个稍微快一点的数据库和一堆有趣的新功能玩得开心......但请记住,虽然 mariadb 在设计上是 mysql 的替代品,但反过来就不是真的(MariaDB v MySQL 兼容性

于 2013-02-07T02:47:34.530 回答
2

MAMP 使用MAMP/bin/startMysql.sh来启动 mysql。尝试改变它。

于 2012-06-18T09:39:47.170 回答