MySQL 安装/常见错误
一、Linux 安装
可参考:https://blog.csdn.net/qq_41604383/article/details/103599573
1. 命令
A. 启动mysql:service mysqld start;
B. 停止mysql:service mysqld stop;
C. 重启mysql:service mysqld restart;
2. 知识点
A. mysql是一个命令行程序,mysqld是一个服务,Linux系统里的一般服务都是以d结尾的;
B. 直接运行mysqld程序来启动MySQL服务的方法很少见,而mysqld_safe脚本会在启动MySQL服务器后继续监控其运行情况,并在其死机时重新启动它。
二. 问题集绵
问题一:本地代码和navicat连不上阿里云服务器mysql
原因:A. 服务器的防火墙没有开放3306端口;
B. 阿里云没有开放3306端口。
解决:A. 针对navicat可以通过ssh连接mysql;
B. 针对本地开发必须开放服务器防火墙和阿里云3306端口。
问题二:代码执行SQL数据无法插入
原因:该SQL数据带有分号,而SQL执行命令间默认就是分号(;)分隔符;
解决:将分号默认为命令间分隔符改为自定义分隔符如%%;
可参考:使用MyBatis的ScriptRunner执行SQL文件
问题三:修改mysql.sock(数据库启动后生成的)默认路径导致登录本地数据库异常
原因:使用rpm安装,mysql客户端默认是去读取/var/lib/mysql/mysql.sock;
解决:在/etc/my.cnf文件中client位置添加新的socket位置,然后重启服务即可,或者命令连接添加-h127.0.0.1 -p3306
1 2 | [client] socket=/data/mysql/mysql.sock |
问题四:MySQL因服务器断电后无法重启
原因:InnoDB文件损坏
解决:步骤一:修改my.cnf配置,添加innodb_force_recovery=1,innodb_force_recovery值范围是1至6,然后重启MySQL,变换innodb_force_recovery值直至重启成功;
innodb_force_recovery=1,忽略检查到的corrupt页;
innodb_force_recovery=2,阻止主线程的运行,比如主线程需要执行full purge操作,会导致crash;
innodb_force_recovery=3,不执行事务回滚操作;
innodb_force_recovery=4,不执行插入缓冲的合并操作;
innodb_force_recovery=5,不查看redo log,InnoDB引擎会将未提交的事务视为已提交;
innodb_force_recovery=6,不执行前滚的操作。
innodb_force_recovery不同值设置,会不同程度损坏数据库文件,生产环境需谨慎使用,确保对这个属性了解清楚。
步骤二:数据库数据导出,mysqldump -h127.0.0.1 -P3306 -uroot -p123456 rhxy-prod > rhxy-prod.sql,数据一定要备份成功,否则后续动作无法找回;
步骤三:删除文件,先备份ib_logfile0、ib_logfile1、ibdata1三个文件,然后再删除;
步骤四:修改my.cnf配置,将innodb_force_recovery指改为0,或者注释掉,或者删除掉,然后再重启MySQL;
· 步骤五:导入备份的数据,mysql -h127.0.0.1 -P3306 -uroot -p123456 rhxy-prod < rhxy-prod.sql,导入过程中提示Tablespace exists问题,可以删除ibd文件再试。
三、常见错误
错误一:
A. 现象:版本为5.7.20的MySQL,使用GROUP BY field字段排序报错;
B. 原因:MySQL 5.7.5及以上功能依赖检测功能,如果启用了ONLY_FULL_GROUP_BY SQL模式(默认情况下),MySQL将拒绝选择列表,HAVING条件或ORDER BY列表的查询引用在GROUP BY子句中既未命名的非集合列,也不在功能上依赖于它们;
SQL查询语句:select @@global.sql_mode
C. 解决办法:在/etc/my.cnf中增加sql_mode,去掉ONLY_FULL_GROUP_BY值即可(sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION);
可参考:my.cnf文件参数详解
http://www.linuxe.cn/post-631.html
https://blog.csdn.net/yabingshi_tech/article/details/108981225
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗