[Err] 1044 - Access denied for user '用户名'@'localhost' to database '数据库名'
[Err] /*Data for the table `表名` */

LOCK TABLES `表名` WRITE;
[Msg] Finished - Unsuccessfully

sql文件内容如下:

CREATE TABLE `sys_user` (
  `user_id` bigint(32) NOT NULL AUTO_INCREMENT COMMENT '用户id',
  `user_code` varchar(32) NOT NULL COMMENT '用户账号',
  `user_name` varchar(64) NOT NULL COMMENT '用户名称',
  `user_password` varchar(32) NOT NULL COMMENT '用户密码',
  `user_state` char(1) NOT NULL COMMENT '1:正常,0:暂停',
  PRIMARY KEY (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;

/*Data for the table `sys_user` */

LOCK TABLES `sys_user` WRITE;

insert  into `sys_user`(`user_id`,`user_code`,`user_name`,`user_password`,`user_state`) values
(1,'t0003','小金','123','1'),
(2,'t0001','小银','123','1'),
(3,'t0001','小铁','123','1'),
(4,'t0001','小铜','123','1');

UNLOCK TABLES;

用mysql执行一个创建表和插入数据的sql文件出现如标题所示的报错,百度了一下很多文章都说是用户名和密码问题,但是自己排查了一下用户名和密码,是没有问题的,能正常登陆,虽然出现了上述报错,但是创建表是成功的,数据没有插入成功,后面我仔细看了下sql文件,然后分步执行sql语句,发现执行到LOCK TABLES `sys_user` WRITE;这条语句的时候出现了如标题所示的报错,于是判断应该是执行用户没有锁表的权限,于是给执行用户赋予了锁表的权限之后能正常执行sql文件。

总结:

引起Err] 1044 - Access denied for user的报错的原因可能有:1.用户名密码问题 2.执行用户权限问题,出现该报错需逐步排查用户名密码以及执行用户权限问题。

 

 

 

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐