在mac os上安装mysql

我正在尝试在mac os 10.6上使用Homebrew通过brew install mysql 5.1.52来设置MySQL。

一切顺利,我也成功与mysql_install_db
但是,当我尝试连接到服务器使用:

 /usr/local/Cellar/mysql/5.1.52/bin/mysqladmin -u root password 'mypass' 

我得到:

 /usr/local/Cellar/mysql/5.1.52/bin/mysqladmin:连接到服务器'localhost' 
失败的错误:'拒绝用户root'@'localhost'(使用密码:否)' 

我试着mysqladmin or mysql using -u root -proot来访问mysqladmin or mysql using -u root -proot
但不能使用或不使用密码。

这是一个全新的机器上的全新安装,据我所知,新的安装必须无需root密码才能访问。 我也试过:

 /usr/local/Cellar/mysql/5.1.52/bin/mysql_secure_installation 

但我也得到了

错误1045(28000):访问被拒绝用户'root'@'localhost'(使用密码:否) 

我认为可以用已经安装的老版本的mysql来完成这个任务。 我有同样的问题,没有上述解决scheme为我工作。 我这样解决它:

使用brew的removecleanup命令,卸载launchctl脚本,然后删除/usr/local/var的mysql目录,删除我现有的/etc/my.cnf (如果适用的话,将其留给你)和launchctl plist

更新了plist的string。 另请注意,您的备用安全脚本目录将基于您要安装的MySQL版本。

一步步:

 brew remove mysql brew cleanup --force launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist sudo rm -rf /usr/local/var/mysql 

然后我从头开始:

  1. brew install mysql
  2. 运行brewbuild议的命令(参见下面的注释)

     unset TMPDIR mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp 
  3. 使用mysql.server start命令启动mysql,以便能够login它

  4. 使用备用安全脚本:

     /usr/local/Cellar/mysql/5.5.10/bin/mysql_secure_installation 
  5. 跟在launchctl包脚本输出中的launchctl部分,

     #start launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist #stop launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist 
  6. 繁荣。

希望帮助别人!

注意: brew cleanup上的--force也会清理过时的桶,认为这是一个新的自制function。

请注意第二个:评论者说第二步不是必需的。 我不想testing它,所以YMMV!

有同样的问题。 好像设置说明或正在创build的初始表有问题。 这就是我的机器上运行mysqld的方式。

如果mysqld服务器已经在您的Mac上运行,请先停下来:

launchctl unload -w ~/Library/LaunchAgents/com.mysql.mysqld.plist

使用以下命令启动mysqld服务器,任何人都可以使用完全权限login。

mysqld_safe --skip-grant-tables

然后运行mysql -u root ,现在应该让你无需密码login成功。 以下命令应该重置所有的根密码。

UPDATE mysql.user SET Password=PASSWORD('NewPassword') WHERE User='root'; FLUSH PRIVILEGES;

现在,如果您终止mysqld_safe的运行副本,并在不使用skip-grant-tables选项的情况下重新启动它,则应该可以使用mysql -u root -p和您刚刚设置的新密码login。

这里有详细的说明,结合摆脱所有的MySQL从你的Mac,然后安装它作为Sedorner啤酒之路上面写道:

根据技术实验室完全删除MySQL

  • ps -ax | grep mysql
  • 停止并kill任何MySQL进程
  • 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*
  • launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
  • 编辑/etc/hostconfig并删除该行MYSQLCOM=-YES-
  • rm -rf ~/Library/PreferencePanes/My*
  • sudo rm -rf /Library/Receipts/mysql*
  • sudo rm -rf /Library/Receipts/MySQL*
  • sudo rm -rf /private/var/db/receipts/*mysql*
  • 尝试运行mysql ,它不应该工作

Brew从这个StackOverflow答案中为每个用户安装MySQL Sedorner

  • brew doctor并修复任何错误
  • brew remove mysql
  • brew cleanup
  • brew update
  • brew install mysql
  • unset TMPDIR
  • mysql_install_db --verbose --user= whoami --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
  • mysql.server start
  • 运行Brewbuild议的命令,将MySQL添加到launchctl以便在启动时自动启动

现在mysql应该可以正常运行,并且可以按照预期一直运行

一帆风顺。

我刚才也有同样的问题。 如果你brew info mysql并按照步骤,它看起来像根密码应该是new-password如果我没有记错的话。 我看到了你所看到的同样的东西。 这篇文章对我最有帮助。

原来我没有为我创build任何帐户。 当我login后运行mysqld_safe ,并select * from user; 没有行被返回。 我打开mysqld_safe运行的MySQLWorkbench,并添加了一个包含我所期望的所有priv的root帐户。 现在这个对我来说很好。

好吧,我有同样的问题,并解决它。 出于某种原因,使用Homebrew来安装mysql时,mysql_secure_installation脚本不能正常工作,所以我手动完成了。 在CLI中input

 mysql -u root 

这应该让你进入MySQL。 现在执行以下操作(取自mysql_secure_installation):

 UPDATE mysql.user SET Password=PASSWORD('your_new_pass') WHERE User='root'; DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1'); DELETE FROM mysql.user WHERE User=''; DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%' DROP DATABASE test; FLUSH PRIVILEGES; 

现在用mysql -u root -p退出并回到mysql

如果brew安装了MySQL 5.7,这个过程与以前的版本有点不同。 要重置根密码,请按以下步骤操作:

 sudo rm -rf /usr/local/var/mysql mysqld --initialize 

临时密码将被打印到控制台,并且只能用于更新根密码:

 mysql.server start echo "ALTER USER 'root'@'localhost' IDENTIFIED BY 'my-new-password';" | mysql -uroot -pTEMPORARY_PASSWORD 

酿造信息mysql

 mysql: stable 5.6.12 (bottled) http://dev.mysql.com/doc/refman/5.6/en/ Conflicts with: mariadb, mysql-cluster, percona-server /usr/local/Cellar/mysql/5.6.12 (9363 files, 353M) * Poured from bottle From: https://github.com/mxcl/homebrew/commits/master/Library/Formula/mysql.rb ==> Dependencies Build: cmake ==> Options --enable-debug Build with debug support --enable-local-infile Build with local infile loading support --enable-memcached Enable innodb-memcached support --universal Build a universal binary --with-archive-storage-engine Compile with the ARCHIVE storage engine enabled --with-blackhole-storage-engine Compile with the BLACKHOLE storage engine enabled --with-embedded Build the embedded server --with-libedit Compile with editline wrapper instead of readline --with-tests Build with unit tests ==> Caveats A "/etc/my.cnf" from another install may interfere with a Homebrew-built server starting up correctly. To connect: mysql -uroot To reload mysql after an upgrade: launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist 

mysql.service启动

 . ERROR! The server quit without updating PID file (/var/run/mysqld/mysqld.pid). 

或者mysql -u root

 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 

我正在寻找解决scheme一段时间,但我无法解决我的问题。 我尝试了几个解决scheme在stackoverflow.com,但没有这个帮助我。

如果mysql已经安装

完全停止mysql。

  1. mysql.server stop < – 可能需要根据你的版本进行编辑
  2. ps -ef | grep mysql ps -ef | grep mysql < – 用mysql名字列出进程
  3. kill [PID] < – 通过PID杀死进程

删除文件。 上面的说明很好。 我将补充:

  1. sudo find /. -name "*mysql*"
  2. 使用你的判断, rm -rf这些文件。 请注意,许多程序有你不想删除的MySQL的驱动程序。 例如,不要删除PHP安装目录中的东西。 在自己的mysql目录中删除东西。

安装

希望你有自制。 如果没有,请下载。

我喜欢以root身份运行brew,但我不认为你必须这样做。

  1. sudo brew update
  2. sudo brew install cmake < – 依赖于mysql,很有用
  3. sudo brew install openssl < – 对mysql的依赖,很有用
  4. sudo brew info mysql < – 浏览这个…它给你一些下一步将要发生的事情
  5. sudo brew install mysql --with-embedded; say done sudo brew install mysql --with-embedded; say done < – 与embedded式服务器安装MySQL。 告诉你什么时候结束(我的安装花了10分钟)

之后

  1. sudo chown -R mysql /usr/local/var/mysql/ < – 直到我运行这个命令时,mysql才会工作
  2. sudo mysql.server start < – 再一次,确切的语法可能会有所不同
  3. 在mysql中创build用户( http://dev.mysql.com/doc/refman/5.7/en/create-user.html )。 记得为root用户添加一个密码。

尝试通过授予MySQL的授予权限命令

上面的答案(或其他地方的几十个答案中的任何一个)在使用最新版本的mysql和yosemite的brew时都适用于我。 我最终通过brew安装了一个不同的mysql版本。

通过说(例如)指定一个旧版本

 brew install mysql56 

为我工作。 希望这有助于某人。 这是一个令人沮丧的问题,我觉得我永远被困住了。

TL; DR

安装Brew后MySQL服务器可能不运行。 尝试brew services start mysql或只是mysql.server start如果你不希望MySQL作为后台服务运行。

全文:

我刚安装MySQL(stable)5.7.17在一台运行Sierra的新MacBook Pro上,运行mysql_secure_installation时也出现错误:

 Securing the MySQL server deployment. Enter password for user root: Error: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 

说什么?

根据Brew的安装信息, mysql_secure_installation应该提示我…确保安装。 我觉得MySQL服务器可能没有正常运行。 运行brew services start mysql ,然后mysql_secure_installation像魅力一样工作。

我尝试重新启动mysql后,我有同样的问题。

为方便起见,我在.profile中使用了以下两个别名

 alias mysql-stop='launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist' alias mysql-start='launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist' 

在停止mysql后,然后尝试重新启动我遇到了你遇到的问题。 我看着launchctl负载,它报告“没有发现加载”错误。

快速search后,我发现这..

http://www.daveoncode.com/2013/02/01/solve-mac-osx-launchctl-nothing-found-to-load-error/

所以我更新了我的mysql-start别名,如下所示

 alias mysql-start='launchctl load -w -F ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist' 

这解决了我的问题,可能对你有用。

Mysql的“Base-Path”存储在/etc/my.cnf ,当你升级时不会更新。 只要打开它并更改basedir值

例如,更改这个:

 [mysqld] basedir=/Users/3st/homebrew/Cellar/mysql/5.6.13 

指向新版本:

 [mysqld] basedir=/Users/3st/homebrew/Cellar/mysql/5.6.19 

重新启动mysql:

 mysql.server start