mysql报错解决办法(常见错误)

mysql报错问题解决!!!

1、Multiple primary key defined:已定义多个主键

PRIMARY KEY(图书编号)主键对应的第一行的属性之前把auto该成不自动就报错了

下面是主键的创建方式和常见错误

创建主键可以有两种方式:

1

2

3

4

5

6

create table 表名(

字段名 类型,

字段名 类型,

……

primary key(name)

);

或者是

1

2

3

4

5

create table 表名(

字段名 类型 primary key,

字段名 类型,

……

);

2、Incorrect date value: '1996' for column '出版日期' at row 1

该报错信息出现应该将data的数据形式变成1996-09-23>19960923这样报错就解决了

先看出版日期的数据类型为data所以去找data的数据表达形式

3、Unknown column '计算机' in 'field list':字段不存在

最简单的解决办法技术给数据(计算机)加上('计算机')就可以了,在mysql里面字符串需要加‘’单引号

4、Column count doesn't match value count at row 1:列计数与第1行的值计数不匹配

可能sql语句里面有中文符号导致报错

5、解决在命令行输入 mysql -u root -p 登录mysql报ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost’ (10061)**

这个可能问题是1.mysqld服务没有启动2.无法连接到“本地主机”(10061)上的MySQL服务器,其实这两个问题差不多是一个问题

解决方法:

第一步:

        首先以管理员身份启动cmd,要不然服务禁止访问。

第二步:

        然后在cmd中输入 mysqld --remove mysql或者mysqld --remove mysql57来移除服务。

        不移除服务后面会报拒绝访问。

第三步:

        然后进入MySQL安装目录中找到data文件,清空其中全部文件。有一部分是目录是在C:\ProgramFile\MySQL\MySQL Server 8.0\data,(没有data文件自己建一个),data文件夹也有可能在C:\ProgramData\MySQL\MySQL Server 8.0。然后到这里当你去找这个data目录的时候,当年执行完初始化之后你的data目录可能会啥都没有:其他它回到了你的mysql安装目录的data

这个是我的那个data目录是我清空全部文件之后的,然后神奇的事情来了,和第五步一起看一下

第四步:

        注册服务,mysqld -install。

第五步:

        开始初始化,mysqld --initialize,然后可以看到****(看到这里,有一部分的同学的data没有任何文件是什么原因呐,就是data文件回到了你的mysql安装目录的data文件,所以找不到初始化之文件的去你的mysql安装目录下找找)data文件夹中文件正在初始化中(正在生成文件中)。

初始化后data目录位置:如下图

第六步:

        初始化过程中也会把登录密码初始化,在data文件中找到以.err结尾的文件是mysql的错误日志,打开

2023-01-03T06:24:26.064230Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 3t3d3z-&k1qE

标红的是初始密码记住初始密码

第七步:

        mysql -u root -p 后出现Enter password:输入密码,在这里可能会有其他错误:

ERROR 1045 (28000): Access denied for user 'root@localhost'@'localhost' (using password: YES),其实和刚刚开始情况差不多,使用mysqld --start启动MySQL服务器

第八步:

        修改密码,在这里我是8.0的,这个地方它会让你先修改密码;

mysql> use mysql
No connection. Trying to reconnect...
Connection id:    18
Current database: *** NONE ***

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root'; 修改,密码语句
Query OK, 0 rows affected (0.01 sec)

修改完之后就可以正常使用了。

6. `Access denied for user 'username'@'localhost' (using password: YES)`: 这通常是因为输入的用户名或密码不正确。请确保输入的用户名和密码是正确的,并且该用户具有适当的权限。

7. `Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)`: 这通常是因为MySQL服务没有启动,可以尝试启动MySQL服务。

8. `Duplicate entry 'X' for key 'PRIMARY'`: 这意味着您正在插入重复的主键值。确保要插入的值在表中唯一。

9. `Table does not exist`: 这表示您正在尝试访问不存在的表格。请确保表名拼写正确并存在于数据库中。

10. `Out of memory; restart server and try again (needed X bytes)`: 这表示MySQL服务器已经用尽了可用的内存。您可以尝试增加MySQL的内存限制或优化查询以减少内存使用量。

11. `Lock wait timeout exceeded; try restarting transaction`: 这通常发生在并发环境下,当一个事务持有锁太久时。您可以尝试减少事务持有锁的时间或增加等待超时时间。

12. `MySQL server has gone away`: 这可能是由于连接超时或者MySQL服务崩溃导致的。您可以尝试增加`wait_timeout`和`interactive_timeout`参数的值。 

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

sky wide

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值