使用brew安装两个版本的mysql,使其共存(不是同时开启)是真的麻烦
以下记录一下:
-
如果你一开始安装了其中一个版本,比如我5.7或者8.0,那么你要做的是在关闭所有mysql服务后,更改datadir 目录(一般是 /usr/local/var/mysql)的名称,比如改成 /usr/local/var/mysql_5.7 ,我的之前是5.7 就改成5.7
mv /usr/local/var/mysql /usr/local/var/mysql_5.7
注:在homebrew.mxcl.mysql.plist中的<string> </string> 对也修改下,不过目前没发现不修改有什么问题2333
-
然后brew cleanup,安装另一个版本
-
brew unlink mysql@5.7 brew link mysql --force
-
查看一下link的版本
mysql -V
-
关键的时候来了,如果这时候按照提示的命令启动mysql,
- 使用mysql -uroot -p ,大概率会遇到 ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’
- 使用mysql.server start ,大概率会遇到 ERROR! The server quit without updating PID file (/usr/local/var/mysql/XXX.local.pid).
这种事情我搜索了网上大部分的(中英文),大概就两个思路,一是彻底删除干净mysql重装mysql,依靠玄学力量对对抗超出知识范围的不确定性,二是sudo命令,增加权限解决第一条。
以上是有人成功有人失败,感觉玄学和魔法的力量加重了啊。
很明显,我是那个不幸运的,两种方法都不行,我于是把目光放在了另一个方面,先修改密码,因为brew安装的mysql是没有预设密码的,所以你 mysql -uroot -p 键入回车进不去报错,这时候就按照老套路修改密码。
-
老套路修改密码:
-
给 my.cnf 文件添加 skip-grant-tables
-
重启:mysql.server restart
-
修改之前确认是版本号(确实改对版本了)
mysql> flush privileges; #刷新 mysql> use mysql; mysql> alter user'root'@'localhost' IDENTIFIED BY 'Abc@11235' # 注意: mysql8.0以上密码策略限制必须要大小写加数字特殊符号
-
然后修改回 my.ini
-
-
重新登录 mysql8 测试,这时候需要输入密码了,键入进去了
总结
开发环境的配置,依靠困乏的知识,来对抗简直就像摇骰子一般以试错对抗玄学,这样我一下午的时间就消耗了,珍爱生命,远离配置环境。
最后测试了两个mysql版本,都是可以运行,强迫症害死人…
0 评论:
发表评论