最近公司安排任务去研究unity ar ,这对于一心在web开发,特别是前端技术的我,可以说带来了不少困扰和情绪上的变动。可是当我静下心来想想,梦想是梦想,实际是实际,带着梦想走着实际的路,哪个不是学么,更何况ar,vr现在正火着呢。不管怎么样我依然不会改变web开发的人生之路,如果现在改变不了现状,那就等到有能力改变现状的时候,我会坚持下去,一直待到时机成熟时。好了扯远了,回到正题。
电脑系统从win换到mac后,最大的变化就是整个人都蒙蔽了。mac和win的操作有很大的差别,所以长久在win的开发习惯都要进行相应的改变。没办法,只能一步步学习mac上好的开发习惯。
1、mysql的n次安装与卸载
mysql mac上的安装方式有两种,一种是直接去mysql 官方下载mac的安装包,跟随着指引一直next就行。安装成功后,会弹出一个对话框,里面告诉你临时的mysql本地登录密码。然后找到mac 的偏好设置,可以发现多出一项mysql图标,点击打开,点击start mysql service 按钮打开mysql 服务就ok了。
可是本人好死不死就是忘记了提示的登录密码,接下来一系列的百度的指令操作、卸载、重装直接导致mac start mysql服务失效,没有反应。这里得吐槽一下自己没有冷静的思考问题。盲目的去跟随别人的建议去操作,没有任何意义。
2、homebrew 安装 mysql
换个思路吧,homebrew这个mac套件还不错,传送门:
https://brew.sh/index_zh-cn.html
首先先把之前的mysql清理干净,指令清理方式如下:
sudo rm /usr/local/mysql sudo rm -rf /usr/local/var/mysql sudo rm -rf /usr/local/mysql* sudo rm -rf /Library/StartupItems/MySQLCOM sudo rm -rf /Library/PreferencePanes/My* vim /etc/hostconfig and removed the line MYSQLCOM=-YES- rm -rf ~/Library/PreferencePanes/My* sudo rm -rf /Library/Receipts/mysql* sudo rm -rf /Library/Receipts/MySQL* sudo rm -rf /var/db/receipts/com.mysql.*
好了,接下来,安装homebrew,打开终端,复制官网提供的指令,接下来就是指令自己去安装了。
安装mysql
brew install mysql
启动mysql
mysql.server start
报错 多个端口没有被允许 (mysqld_safe.pid: Permission denied),看来之前卸载依然有问题
看下哪些多余的端口,pid还在运行,指令查看
ps -ef|grep mysqld
ps -ef|grep mysql
通过指令把多余的杀掉
sudo kill -g pid号
sudo 很重要,在win系统中往往不需要,但是mac的安全机制经常要在指令前加上sudo ,如果不输入会报错,所以加上为好。
再一次启动还是报同样的错
运行指令
sudo mysqld_safe --skip-grant-tables
--skip-grant-tables是个mysql一个参数。它表示在启动mysql时不启动grant-tables,授权表。这个授权表就是之前授权拒绝的原因所在。
发现终于看到success的字样了
赶紧把密码改过来,此时此刻,进入mysql 密码是空的,进入后修改密码
update user set password=password('你的新密码') where user='root'
但是报错又来了
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
需要刷新用户表
flush privileges
flush privileges的基本解释:它本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。MySQL用户数据和权限有修改后,希望在"不重启MySQL服务"的情况下直接生效,那么就需要执行这个命令。通常是在修改ROOT帐号的设置后,怕重启后无法再登录进来,那么直接flush之后就可以看权限设置是否生效。而不必冒太大风险。