求助,本地计算机上的mysql服务启动后停止

那天我在办公室,想给新买的开发机装个MySQL,结果折腾了好半天。
本来以为挺简单的,结果问题一个接一个。

先说版本,用的是mysql-5 .7 .1 3 -winx6 4 .zip,直接解压到C:\Program Files\mysql-5 .7 .1 3 -winx6 4 启动服务,结果不行。
MySQL服务创建了空的data文件夹,也弄了个my.ini,但就是启动不了。

cmd里执行mysql -u root -p,提示“ERROR 2 003 (HY000): Can't connect to MySQL server on 'localhost' (1 006 1 )”。
这明显是端口问题,但端口明明是3 3 06 啊。
查了查,发现是my.ini没写对。
不能直接用my-default.ini改,那个只是参考。
得在当前文件夹复制一个my.ini,填好basedir和datadir,然后保存。

创建data文件夹,必须是空的。
如果里面有旧的日志文件,删掉。
注册服务时,cmd得进bin目录,否则会出错。
执行mysqld --initialize-insecure --user=mysql,这样就能初始化了。

启动后,又遇到权限问题,提示“access denied for user 'root'@'localhost' (using password: YES)”。
开始以为是密码不对,试了好几个,都不行。
后来查了查,发现是root权限问题。
可能是装的时候没以管理员身份运行。

解决方法挺简单: 1 . 管理员登录,停止MySQL服务或结束mysqld-nt进程; 2 . cmd进安装目录,比如D:\Program Files\MySQL\MySQL Server 5 .5 \bin; 3 . 运行mysqld-nt --skip-grant-tables启动MySQL,跳过权限检查; 4 . 运行mysqladmin -u root flush-privileges password "newpassword"重设密码; 5 . 重启MySQL服务。

折腾完这些,MySQL终于能用了。
但突然想到,为什么my.ini不能直接改呢?还有,--skip-grant-tables这种方式安全吗?会不会有别的隐患?

MySQL,启动不了 F:\mysql-5.7.13-winx64\bin>net start mysql MySQL 服务正在启动 . MySQL 服务无法启动

等等,我昨天帮邻居老王重启他的数据库服务,那家伙折腾了半天。
他那个老旧的Windows 7 系统,开始菜单得点半天。
他找到附件,咦?命令提示符怎么没了?我赶紧教他点“运行”,输入“cmd”,然后点确定。
黑乎乎的窗口弹出来,他手一抖,把命令输错了,还以为MySQL服务是叫“sqlserver”呢,结果提示找不到。
真是的,命名的时候就该起个容易记的名字。
后来总算找到了,输入net start mysql5 6 ,回车,屏幕上立马弹出几个服务状态,他一看,哎,好了,亮着了。
这才放心。

如何在Debian 10(Buster)Linux上安装MySQL

说白了,在Debian1 0上装MySQL其实就四步,但每步都有细节得抠清楚。

先说最重要的,第2 步配置官方PPA是关键中的关键。
去年我们跑那个项目,就因为直接用旧版源装,结果MySQL8 .0的模块跟系统其他库直接冲突,直接雪崩效应,用行话说叫版本不兼容。
另外一点,选择MySQL版本得趁早,比如我们当时选了5 .7 ,因为8 .0还缺几个我们用得上的插件。
还有个细节挺关键的,装完MySQL8 .0默认密码太弱,必须马上用mysql_secure_installation加固,不然等防火墙开了,黑客直接暴力破解得手。
说实话挺坑的,我一开始也以为改密码就是改一次,后来发现每次扩展权限都得重新来。

等等,还有个事,第4 步安全脚本里有个选项是"删除匿名用户",很多人没注意这个,结果远程连进去发现连个壳都没有,直接卡死。
建议全选是,除了测试数据库。

最后说句实在的,装完记得用sudo ufw allow 3 3 06 /tcp开个口子,不然远程访问直接GG。