怎么mysql不自动启动 mysql自动停止的解决办法

如何解决MYSQL不能自动启动的问题一、下载安装文件
到MySQL官方网站找到ZIP文件
二、解压文件,选择位置
最好是放在某个盘的mysql文件夹下,这样比较容易找到 , 这里我们将文件解压到D盘的mysql文件夹下 。
三、让windows知道你的MySQL在哪个位置
在系统盘的Windows主目录下建立一个my.ini文件,内容如下:
[mysqld]basedir=D:/mysql/datadir=D:/mysql/data/
然后设置PATH环境变量 。把D:mysqlbin添加进去,这样的话下次进入命令模式的时候就可以直接用mysql,而不用先移动到d盘的mysql/bin目录下了 。
四、让Windows服务加入MySQL
意思也就是让windows启动的时候能让MySQL自动启动
在命令行(CMD)模式下,先转到d盘的mysql/bin目录下 , 然后输入
mysqld-nt -install
顺利的话,会提示:
Server successfully installed.
五、重启计算机,安装完成
重启后进入“控制面板”-“服务” , 看看是否有MySQL这项服务,是否显示为“启动” 。
如果不想让MySQL在每次启动计算机的时候直接启动的话可以把自动项改成手动 。
一次解决MySQL无法启动的全过程启动Mysql提示ERROR! The server quit without updating PID file (/usr/local/var/mysql/xxxx.local.pid).
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安装方式的卸载方法:
至此,这个问题算是完美解决了 。
如何设置让MYSQL数据库,可以令其不会随电脑自行启动?import_table(importTable) 的延申功能:可定制化行输入 。
import_table(importTable) 我们之前有介绍过,是一款并行导入各种格式文本的工具 , 封装了 MySQL 语句 load data local infile 。
比如说要导入一个以 TAB 为分隔符的文本数据文件:/tmp/sample_ytt.txt 到表:ytt_new.t1 , 可以执行下面语句:
上面结果是 load data infile 语句的导入结果 。如果改用 import_table 方法来做同样的事情,基于 Python 语法,使用方法如下:
那接下来看另外一个需求:在导入文本文件时对每行做预处理(例如在导入数据之前更改列 r2 的值为 mod(r1,10),列 r5 的值为 abs(r4-46) ),这样可以减少导入后再次处理的时间开销 。
【怎么mysql不自动启动 mysql自动停止的解决办法】这个需求用 load data infile 语句非常容易实现:(导入时更改列 r2 和 r5 的数据,类似 UPDATE 语法)
那如果要用 util.import_table(importTable) 来实现上面的需求,在 MySQL 8.0.22 之前是没办法的 。
随着 MySQL 8.0.22 的发布,MySQL 对 import_table 方法做了些扩充功能,其中增加了一个选项 “decodeColumns” 可以实现字段的预先输入定制化功能,并且还可以更加丰富 。
接下来用 import_table 来实现上面的需求 , 定制化字段 r2 和 r5:
以上 Options 选项,见下图:
我来具体解释下上图的含义:蓝色字体 columns 对应的数组分别指定数据文件中的每行字段,也就是默认的 TAB 分隔符所分割的每列值,1 和 2 代表占位符 , 1 代表数据文件中每行的第一个列,2 代表数据文件中每行的第四列,decodeColumns 字典分别对需要预先输入的字段做处理 。比如 r1 字段保留为变量 @1 , r2 字段对应 mod(r1,10) 等 。
如果还是不太理解变换规则,可以临时打开 general log,上面 import_table(importTable)对应的 MySQL 日志为:
以上日志写的很清楚,内部转换为最基本的load data infile语法 。
那这里我简单解读了下 MySQL 8.0.22 对 MySQL Shell 的一项定制化输入文本文件的新特性,更多的新特性可以继续关注 。
怎么mysql不自动启动的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于mysql自动停止的解决办法、怎么mysql不自动启动的信息别忘了在本站进行查找喔 。

    推荐阅读