MySQL 学习笔记

1.mysql遇见Expression #1 of SELECT list is not in GROUP BY clause and contains nonag(去掉only_full_group_by)

查询MySQL版本与sqlmode:

select version(), @@sql_mode;

修改sqlmode,执行下面两句代码:

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

set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

还有一个方法就是找到MYSQL的my.ini文件,然后在[mysqld]节点下增加一行

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

2.MySQL 中没有my.ini问题

可以在根目录下创建一个my.ini文件

[mysqld]
# 设置3306端口
port=3306
 
# 自定义设置mysql的安装目录,即解压mysql压缩包的目录
basedir=D:\\Program Files\\MySQL\\MySQL Server 8.0
 
# 自定义设置mysql数据库的数据存放目录D:\MySQL_Data\Data
datadir=D:\\Program Files\\MySQL\\MySQL Server 8.0\\data
 
# 允许最大连接数
max_connections=200
 
# 允许连接失败的次数,这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
 
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
 
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
 
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
 
[client]
# 设置mysql客户端连接服务端时默认使用的端口和默认字符集
port=3306
default-character-set=utf8

3. 忘记MySQL登录密码,如何重置

(1)找到MYSQL的安装bin目录下打开命令窗口,执行命令,停止MYSQL服务

net stop mysql

(2)开启跳过密码验证登录的MYSQL服务,执行命令

mysqld --console --skip-grant-tables --shared-memory

(3)bin目录重新打开一个命令窗口,输入登录命令

mysql -u root -p

直接按回车键,就登录MYSQL成功

(4)将密码重置为空

use mysql

update user set authentication_string='' where user='root';

注意命令后面的分号

(5)关闭mysqld --console --skip-grant-tables --shared-memory命令启动的MYSQL服务

(6)bin目录重新打开一个命令窗口,输入命令启动MYSQL服务

net start mysql 

此时,因为密码已经重置为空,所以可以通过无密码状态登录MySQL

mysql -u root -p

直接按回车键,就登录MYSQL成功

(7)然后修改root的密码

alter user 'root'@'localhost' identified by '新密码';

注意命令后面的分号

(8)等重置成功后输入命令:exit,就可以退出当前登录,然后重新尝试新密码登录

输入登录命令

mysql -u root -p

会提示输入密码,输入你修改的密码,如果能成功登录,则重置密码成功结束

4. MySQL80服务启动后停止

MYSQL启动的时候报错

 (1)首先将MYSQL的data文件夹,对data文件夹进行备份,如果data文件夹不再MYSQL的安装目录下,则可以找到my.ini文件中找到datadir项,后面的地址就是data文件夹目录

(2)将data文件夹删除

(3)在MYSQL的安装bin目录下,打开命令窗口,输入如下命令

mysqld --initialize-insecure --user=mysql

等待命令执行结束,数据库就可以重新初始化成功了,MYSQL服务也可以正常启动了

(4)然后我们就可以利用备份的data文件夹下的文件进行数据的恢复了

5.利用data文件夹下的文件进行数据库恢复

(1)首先我们将我们的数据库文件复制到我们新的data目录下

(2)然后我们将下面的几个文件复制到我们新的data目录下

auto.cnf
ib_buffer_pool
ib_logfile0
ib_logfile1
ibdata1
mysql.ibd

(3)最后我们重启MYSQL服务就可以了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大鱼>

一分也是爱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值