美文网首页@IT·互联网程序员服务端开发实战
不管会不会,我是这样在mac上n次安装与卸载mysql的

不管会不会,我是这样在mac上n次安装与卸载mysql的

作者: 拿着号码牌徘徊 | 来源:发表于2017-03-30 01:52 被阅读6115次
    咬咬牙,坚持就会成为习惯

    最近公司安排任务去研究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之后就可以看权限设置是否生效。而不必冒太大风险。

    相关文章

      网友评论

        本文标题:不管会不会,我是这样在mac上n次安装与卸载mysql的

        本文链接:https://www.haomeiwen.com/subject/dkbonttx.html