数据库操作实践和实际遇到的问题

1、You can't specify target table 'employees' for update in FROM clause  这句话的意思就是说你不能使用同一个表查询到的数据去更新当前表的数据,这个在MYSQL上面是不允许的

2、Cannot delete or update a parent row: a foreign key constraint fails (`mysql`.`massage`, CONSTRAINT `masage_emp_no` FOREIGN KEY (`emp_no`) REFERENCES `employees` (`emp_no`)) 删除关联键值的表数据,这个主要是当前表的键值被另外一个表联系使用,所以删除的时候会报告不能删除,报告键外主键的问题。比如图书和图书借阅表数据

3、CONSTRAINT `masage_emp_no` FOREIGN KEY (`emp_no`) REFERENCES `employees` (`emp_no`)) 意思是当前表的emp_no键值是以employees的键值emp_no作为外键的,删除employees的数据时要保证新表的发关于删除emp_no数据都已经被删除

CONSTRAINT是约束的意思

4、alter table emp add constraint ppp primary key (id) 这个是在建立表之后增加约束的命令,另外可以在建立表格的时候就直接使用constraint ppp primary key (id)产生约束限制

5、no database selected 意思就是没有选择数据库,使用use dataname指定操作数据库就可以了

6、Access denied for user 'root'@'localhost' (using password: YES) 这时候注意数据库的账号密码的正确性

7、ubuntu部署数据库账号密码的时候,可能没有出现设置密码的界面弹出,这个可以进去root账户,进去之后可以更改密码。初次没有密码

  mysql,键入mysql –uroot –p;

  update mysql.user set authentication_string='123456' where user='root';

  flush privileges;

8、关于腾讯云docker部署了mysql之后,出现的navicat连接不上mysql的情况,从下面几个方面来处理

  1、对比IP是否正确,账号密码是否正确,账号root、密码要确认好

  2、关注防火墙是否正常,这个一个是终端看一下,services iptables 相关,查看一下,关闭一下防火墙,另外看一下腾讯云控制台的规则是否放开了3306端口,打开了数据库的入栈允许

  3、设置一下账号密码权限

    select host,user,plugin,authentication_string from mysql.user;

    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'newpassword';

    就是增加一个不限制,查看出现 | %         | root             |   mysql_native_password |就说明权限设置成功了,之后再连接就可以了。

    目前发现基本上就是这几个问题导致的,有其他原因欢迎告诉下

posted @ 2022-02-08 11:25  Sukkimy  阅读(250)  评论(0)    收藏  举报