Mysql使用过程中碰到的几个问题

Mysql使用过程中碰到的几个问题

目录

Mysql使用过程中碰到的几个问题

1.mysql的安装碰到的几个坑

2.mysql 5.7.27或者以上版本遇到的版本问题造成的原因


1.mysql的安装碰到的几个坑

小编是一位刚学习Java不久的小白,最近学到数据库就也试着安装MySQL软件。去官网下载软件时发现5.7版本里只有5.7.27,而我在网上找的安装教程也只是版本号相近,这似乎也为我接下来配置过程中碰到的问题埋下了伏笔。

第一个问题: 命令提示符输入net start mysql 服务无法启动
按照网上的教程,安装过程还是很顺利的。但是在配置过程中就遇到了麻烦。首先就是命令提示符输入net start mysql后,出现了如下图的情况

在这里插入图片描述

后来,我也是看了别人的博客才找到了问题所在(博客地址:https://blog.csdn.net/JWbonze/article/details/80241417 小编所找到的办法只是该博客中其中一种,如果读者跟我不一样,可以点击链接了解详情)。
原来我服务窗口所写的名称是MySQL57,那么命令提示符就得输入net start mysql57
如此,第一个问题终于解决了。

第二个问题:密码
按照网上的安装教程,接下来就是输入密码

在这里插入图片描述

教程里说到,密码在data文件夹中以.err结尾的文件中,粘贴复制密码进来之后就可以使用了。

第三个问题就是进行改密码:

方法1: 用SET PASSWORD命令   

首先登录MySQL。  

格式:mysql> set password for 用户名@localhost = password('新密码');  

例子:mysql> set password for root@localhost = password('123');  

 

方法2:用mysqladmin   

格式:mysqladmin -u用户名 -p旧密码 password 新密码  

例子:mysqladmin -uroot -p123456 password 123  

 

方法3:用UPDATE直接编辑user表   

首先登录MySQL。  

mysql> use mysql;  

mysql> update user set password=password('123') where user='root' and host='localhost';  

mysql> flush privileges;  

方法4:在忘记root密码的时候,可以这样   

以windows为例:   

1. 关闭正在运行的MySQL服务。  

2. 打开DOS窗口,转到mysql\bin目录。  

3. 输入mysqld --skip-grant-tables 回车。--skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。  

4. 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysql\bin目录。  

5. 输入mysql回车,如果成功,将出现MySQL提示符 >。  

6. 连接权限数据库: use mysql; 。 

6. 改密码:update user set password=password("123") where user="root";(别忘了最后加分号) 。  

7. 刷新权限(必须步骤):flush privileges; 。  

8. 退出 quit。  

9. 注销系统,再进入,使用用户名root和刚才设置的新密码123登录。

 

2.mysql 5.7.27或者以上版本遇到的版本问题造成的原因

1.Mysql遇到的大坑:Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre

Expression #1 of SELECT list is not in GROUP BY clause and contains
nonaggregated column ‘sss.month_id’ which is not functionally
dependent on columns in GROUP BY clause; this is incompatible with
sql_mode=only_full_group_by

第一次遇到这样的问题,这是由于MySQL启用了ONLY_FULL_GROUP_BY SQL模式(默认情况下)。说实话,我当时慌了,百度,谷歌搜了很多办法,如修改mysql的my.ini配置文件等,但是并没有什么用,如果你也遇到这样的问题,也没有解决,不妨试试我的方法。

打开Navicat或者SQLyog或者其他数据库管理工具,执行如下命令:

select @@global.sql_mode

你会看到查询出来的字符串中,有ONLY_FULL_GROUP_BY,这也正是祸害的根源,因此,我们的目的就是去掉这个值。所以,执行如下命令:

set @@global.sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

执行完后,应该已经成功了,不妨再使用select @@global.sql_mode查看一下。

2.mysql 5.7 用8.0版本的驱动可以,5.1版本也可以,5.5、5.6、5.7都不可以(或许这些版本的连接器都是我一厢情愿的)
. 看了下MySQL Connectors 官方文档 上面只有version8.0和version5.1两个版本的文档(看来真的是我想多了)
.version8.0文档上有说明:Connector/J 8.0 provides compatibility with all the functionality of MySQL 5.5, 5.6, 5.7, and 8.0(都兼容,大胆用了)
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值