原本以为在Mac下安装配置mysql是一个很简单的事情,结果在这个过程中遇到了不少麻烦。用了快两个小时才将问题解决。写此文的目的就是希望大家可以快速的在Mac下安装配置好mysql,少走些弯路!
Mac下如何安装mysql?
当然是使用Homebrew啦,至于什么是Homebrew和如何安装Homebrew,请自己去Homebrew官网上看。成功安装Homebrew之后,运行如下命令安装mysql:
brew install mysql
安装完成之后,可使用如下命令查看mysql安装信息:
brew info mysql
详细安装信息如下:
可看见Dependencies下的cmake后面有一把红色的小叉,用如下命令重新安装cmake:
brew unlink cmake brew install cmake
再次查看mysql安装信息,可发现红色小叉变成了绿色小勾,说明依赖问题解决:
问题来了!
当我以为mysql已经安装成功,用mysql -uroot连接数据库的时候,出现了以下错误:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (62)
去查看系统缓存文件夹,下面根本就没有mysql.sock这个文件。网上有一些帖子说去找到或者创建my.conf然后修改mysql.sock的路径什么的,我试了半天,发现根本没用!然后我静下来思考,觉得系统缓存文件夹(/tmp)下没有mysql.sock这个文件,应该是没有成功生成,那为什么没有成功生成呢?查了一圈下来,发现有帖子说是因为没有创建基础表什么的,于是我使用mysql_install_db想去创建基础表,结果又出了如下错误:
ERROR! The server quit without updating PID file (/usr/local/var/mysql/xxx.local.pid).
莫名奇妙,怎么又说没能成功更新PID文件呢?又去网上看了半天,有帖子说可以先kill掉mysql的进程,然后怎么怎么样,结果试了半天,发现还是没用!痛苦了好半天,终于在一个帖子的回复看见了一个高人的指点,说可以去看mysql错误日志,查看mysql错误日志命令如下:
cat /usr/local/var/mysql/xxx-mini.local.err
日志里面的[note]和[warning]可以不用管它,我直接找到了[error]即错误信息:
知道是什么问题了吧!居然是没有读写权限惹得祸!使用dscl . list /Users | grep my可查到mysql在mac里的用户名是_mysql,然后修改mysql文件夹的拥有者:
sudo chown _mysql -R /usr/local/var/mysql/
大功告成!使用sudo mysql.server start就可以看到Starting MySQL .. SUCCESS!,这说明mysql已经正常启动啦!