转载自: 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
用下面的命令就可以自动安装了:
如果想让 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
|
好了,可以启动了
另外的参数还有 {start|stop|restart|reload|force-reload|status}
大部分的介绍就在此结束了。
三、更详细的设置
配置文件 my.cnf
作为用惯了 Linux 的人, 一定会去 /etc
下找 my.cnf
, 让你失望了,这个文件要自己建立。如果看一下帮助
1 | $ mysqld --help --verbose
|
就会发现系统会按这个顺序去找 my.cnf
- /etc/my.cnf
- /etc/mysql/my.cnf
- /usr/local/etc/my.cnf
- ~/.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
改一下就好了。