1、查看mysql错误日志:打开/usr/local/var/mysql/xxxx.err或者xxxx.local.err文件。
2、问题应该是某个程序占用了mysql的默认端口3306。
3、查看端口使用情况lsof -i:3306,发现是一个用户名为_mysql启动了mysqld指令占用了3306,感觉现象非常奇怪,不清楚为什么会有这个用户组,为什么会启动mysqld,由于这个电脑是公司其他同事转移资产到的我名下,所以有可能是之前用户或者公司it装了什么服务导致的。
4、首先尝试干掉进程:sudo kill xxxx,结果发现当kill后,还会重新启动。
5、尝试修改mysql默认启动端口,Baidu上有人告诉修改/Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist文件
添加<string>--port=3307</string>保存,先重新启动mysql服务,发现问题依然存在,发现配置没有起作用,默认端口依然是3306,然后考虑重新启动电脑,看看是否可以修改占用默认端口的配置。
6、重启后再次查看3306端口占用情况,发现确实不存在了。但是发现启动mysql服务时,依然存在问题:
仔细观察发现,这个占用和plist中的mysql配置一样的,所以可以确定每次启动计算机后,会按默认配置执行一个mysqld。
7、不清楚为什么会按com.oracle.oss.mysql.mysqld.plist配置执行mysqld,于是把注意力放在了Mac启动上。
8、Mac的启动原理是:
看到这里就明白了,原来LaunchDaemons里面放的是Mac启动时的一些启动服务,
9、System/Library和/Library和~/Library目录的区别:
10、System/Library和/Library和~/Library目录的区别:
11、有了上面的结果,于是把注意力放在了com.oracle.oss.mysql.mysqld.plist上,每个Mac启动中都有么,这个是如何添加的。首先查看了家里的其他苹果电脑,发现都没有这个plist文件,于是开始研究这个文件的产生原因。
12、经过Baidu怀疑这个文件应该是之前用dmg安装包安装的mysql产生的,在设置中也发现了残留信息
于是果断把自动启动去掉,重启计算机。
13、重启后,发现无论是3306还是3307端口上都没有mysql服务了,于是运行mysql.server start,这次终于看见了Starting MySQL . SUCCESS!
14、删除com.oracle.oss.mysql.mysqld.plist文件,重启电脑后,发现设置中仍然还有MySQL的控制选项。
15、MySQL dmg安装方式的卸载方法:
至此,这个问题算是完美解决了。
1、 mysql安装好后,在mysql的安装目录中有个bin目录,里面有很多客户端软件,如果是mysql的客户端,找到mysql.exe,这个是用于 *** 作数据库的系统客户端软件。
2、 客户端选择:一般情况下,我们在学习的时候会通过使用Windows下的控制台进行访问,即win + R 同时按住打开运行,输入cmd命令进入控制台,然后进入到mysql的bin目录(具体可以看一下Windows下控制器切换路径(百度经验));或者在开发的时候通常会使用一些集成工具,如Navicat之类。
3、 数据库 *** 作步骤:学习的时候客户端和服务端是同时安装的,都在一台电脑上,但是要理解,mysql的客户端和服务端通常不会在一台机器上的(服务器在机房,客户端就在个人电脑上),因此是需要进行一些步骤 *** 作的。(下面以windows下的控制台为例)
① 连接认证:mysql/mysql.exe -h主机地址 -P端口 -u用户名 -p密码,其中h可以是ip地址也可以是主机名如-hlocalhost/-h127.0.0.1,本地可以省略;-P(大写P)是端口,一般mysql是3306,默认可以省略;-u是用户名,如果没有匿名账号,必填;-p(小写p)是密码,一般必填,最好是输入-p后先回车,后输入密码(密文输入密码,更安全)
② 发送SQL指令,SQL(【百科】结构化查询语言Structured Query Language结构化查询语言)是mysql能识别的 *** 作指令,这块如果想深入学习理解可以参照MySQL的API文档或者参考黑马程序员下的6天玩转MySQL,一般情况下分为几大类:
DDL:Data Definition Language,数据定义语言,定义结构。如创建数据库:create database `test` charset utf8
DML:Data Manipulation Language,数据 *** 作语言,进行数据 *** 作。如增删改查指令:insert into table values()/delete from table where condition/update table set key = value/select * from table
DCL:Data Controller Language,数据控制语言,进行权限管理。如给用户授权:grant seletet on *.* to 'root'@localhost
③ 解析:一般情况下客户端会自动解析MySQL服务器执行返回的结果不需要我们进行额外 *** 作,但是如果是其他编程语言需要使用MySQL执行的结果,那么还需要额外的解析(参照黑马程序员6天玩转MySQL中的PHP *** 作mysql)
④ 断开连接:数据库用完之后,要养成主动断开的习惯(被动也可以,但是如果被动没有断开,那么就会“占线”),mysql的客户端可以使用\q | quit | exit,任意一个退出
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)