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'

这意味着您正在插入重复的主键值。确保要插入的值在表中唯一。

10. Table does not exist

这表示您正在尝试访问不存在的表格。请确保表名拼写正确并存在于数据库中。

11. Out of memory; restart server and try again (needed X bytes)

这表示MySQL服务器已经用尽了可用的内存。您可以尝试增加MySQL的内存限制或优化查询以减少内存使用量。

12 Lock wait timeout exceeded; try restarting transaction

这通常发生在并发环境下,当一个事务持有锁太久时。您可以尝试减少事务持有锁的时间或增加等待超时时间。

13. MySQL server has gone away

这可能是由于连接超时或者MySQL服务崩溃导致的。您可以尝试增加wait_timeoutinteractive_timeout参数的值。

14.第一次登录Mysql数据库密码正确登录失败:

  • 关闭mysql服务
service mysqld stop
  • 找到/etc/my.cnf,在最后一行添加skip-grant-tables(用于免密码登录)
vim /etc/my.cnf
skip-grant-tables
  • 重启mysql服务
service mysqld start
  • 正常登录,不使用密码,直接回车
mysql -u root
  • 刷新权限
flush privileges
  • 修改密码
alter user’root’@’%’ IDENTIFIED BY ‘新密码’;
#(mysql8.0以上密码策略限制必须要大小写加数字特殊符号,否则会报错)
  • 找到/etc/my.cnf,删除skip-grant-table
  • 重启服务
service mysqld restart

正常登录测试mysql -u root -p,输入刚刚修改好的密码

15.Starting MySQL. ERROR! The server quit without updating PID file (/opt/data/mysql.pid).

修改/etc/my.cnf

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
更改
[mysqld_safe]
log-error=/opt/data/mariadb.log
pid-file=/opt/data/mariadb.pid

16、Column count doesn’t match value count at row 1

通常发生在插入数据时,指定的列数量和值的数量不匹配,导致数据库无法将数据正确插入到表中。
下面的 SQL 语句:

INSERT INTO users (user_id, username, email) VALUES (1, 'Alice'); 

在这个例子中,指定了三个列 user_idusernameemail,但却只提供了两个值 1'Alice',缺少了对于 email 列的值,因此出现了列数与值数不匹配的错误。
要解决问题,需要确保在 VALUES 关键字后面提供的值和列的数量匹配。
修改上述 SQL 语句为:

INSERT INTO users (user_id, username, email) VALUES (1, 'Alice', 'alice@example.com'); 
  • 27
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

sky wide

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

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

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

打赏作者

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

抵扣说明:

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

余额充值