当前位置: 代码迷 >> MySQL >> 在 Mac 下用 Homebrew 装配 MySQL
  详细解决方案

在 Mac 下用 Homebrew 装配 MySQL

热度:588   发布时间:2016-05-05 16:58:23.0
在 Mac 下用 Homebrew 安装 MySQL

转载自: http://blog.neten.de/posts/2014/01/27/install-mysql-using-homebrew/

?

在 Mac 下用 Homebrew 安装 MySQL, 网上的教程倒是很多,不过大多数都很默契地雷同。如果稍有点定制要求,就无从下手了。

我先也不免俗,从基本的开始:

一、首先安装 Homebrew

123
$ ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"$ brew install git$ brew update

二、安装 MySQL

用下面的命令就可以自动安装了:

1
$ brew install mysql

如果想让 MySQL 开机自动启动,可以如下操作:

1234
$ mkdir -p ~/Library/LaunchAgents$ ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents$ find /usr/local/Cellar/mysql/ -name "homebrew.mxcl.mysql.plist" -exec cp {} ~/Library/LaunchAgents/ \;$ launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

设置 MySQL 用户以及数据存放地址

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

好了,可以启动了

1
$ mysql.server start

另外的参数还有 {start|stop|restart|reload|force-reload|status}

大部分的介绍就在此结束了。

三、更详细的设置

配置文件 my.cnf

作为用惯了 Linux 的人, 一定会去 /etc 下找 my.cnf, 让你失望了,这个文件要自己建立。如果看一下帮助

1
$ mysqld --help --verbose

就会发现系统会按这个顺序去找 my.cnf

  1. /etc/my.cnf
  2. /etc/mysql/my.cnf
  3. /usr/local/etc/my.cnf
  4. ~/.my.cnf

一般网上大虾都会这么教小白建立 my.cnf, 其实这个默认的文件里面几乎没什么内容。

1
$ sudo cp $(brew --prefix mysql)/support-files/my-default.cnf /etc/my.cnf

所以,还是自己老老实实参考 linux 下的配置文件吧。

my.cnf (my.cnf.txt) download
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
## The MySQL database server configuration file.## You can copy this to one of:# - "/etc/mysql/my.cnf" to set global options,# - "~/.my.cnf" to set user-specific options.## One can use all long options that the program supports.# Run program with --help to get a list of available options and with# --print-defaults to see which it would actually understand and use.## For explanations see# http://dev.mysql.com/doc/mysql/en/server-system-variables.html# This will be passed to all mysql clients# It has been reported that passwords should be enclosed with # ticks/quotes escpecially if they contain "#" chars...# Remember to edit /etc/mysql/debian.cnf when changing # the socket location.[client]port        = 3306#socket     = /var/run/mysqld/mysqld.sock# Here is entries for some specific programs# The following values assume you have at least 32M ram# This was formally known as [safe_mysqld]. Both versions # are currently parsed.[mysqld_safe]#socket     = /var/run/mysqld/mysqld.sock#nice       = 0[mysqld]## * Basic Settings### * IMPORTANT#   If you make changes to these settings and your system uses #   apparmor, you may also need to also adjust #   /etc/apparmor.d/usr.sbin.mysqld.##user       = mysql#socket     = /var/run/mysqld/mysqld.sockport        = 3306#basedir    = /usrdatadir    = /usr/local/var/mysql#tmpdir     = /tmpskip-external-locking## Instead of skip-networking the default is now to listen only on# localhost which is more compatible and is not less secure.bind-address        = 127.0.0.1## * Fine Tuning#key_buffer          = 16Mmax_allowed_packet  = 16Mthread_stack        = 192Kthread_cache_size   = 8# This replaces the startup script and checks MyISAM tables if needed# the first time they are touchedmyisam-recover         = BACKUP#max_connections       = 100#table_cache           = 64#thread_concurrency    = 10## * Query Cache Configuration#query_cache_limit   = 1Mquery_cache_size    = 16M## * Logging and Replication## Both location gets rotated by the cronjob.# Be aware that this log type is a performance killer.# As of 5.1 you can enable the log at runtime!#general_log_file        = /var/log/mysql/mysql.log#general_log             = 1log_error                = /usr/local/var/mysql/MacBook15.local.err# Here you can see queries with especially long duration#log_slow_queries   = /var/log/mysql/mysql-slow.log#long_query_time = 2#log-queries-not-using-indexes## The following can be used as easy to replay backup logs or # for replication.# note: if you are setting up a replication slave, see #       README.Debian about other settings you may need #       to change.#server-id          = 1#log_bin            = /var/log/mysql/mysql-bin.logexpire_logs_days    = 10max_binlog_size     = 100M#binlog_do_db       = include_database_name#binlog_ignore_db   = include_database_name## * InnoDB## InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.# Read the manual for more InnoDB related options. There are many!## * Security Features## Read the manual, too, if you want chroot!# chroot = /var/lib/mysql/## For generating SSL certificates I recommend the OpenSSL GUI "tinyca".## ssl-ca=/etc/mysql/cacert.pem# ssl-cert=/etc/mysql/server-cert.pem# ssl-key=/etc/mysql/server-key.pem# Query Cachingquery-cache-type = 1# Default to InnoDBdefault-storage-engine=innodb[mysqldump]quickquote-namesmax_allowed_packet  = 16M[mysql]#no-auto-rehash # faster start of mysql but no tab completition[isamchk]key_buffer      = 16M

错误日志

错误日志默认会存在数据目录下,也就是上面所定义的 /usr/local/var/mysql/,如果 Mac 电脑名字是 MacBook,那日志的全路径就是 /usr/local/var/mysql/MacBook.local.err

让别的电脑访问数据库

取消下面两个文件中关于绑定 127.0.0.1 的语句
/etc/my.cnf

1
bind-address = 127.0.0.1

~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

1
<string>--bind-address=127.0.0.1</string>

就我个人而言,不需要 MySQL 自启动,所以只要在 /etc/my.cnf 改一下就好了。

?
  相关解决方案