1. 提示:ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'。
1.关闭mysql
# service mysqld stop
2.屏蔽权限
# mysqld_safe --skip-grant-tables &
3.新开起一个终端输入
# mysql -uroot mysql
mysql> FLUSH PRIVILEGES;//记得要这句话,否则如果关闭先前的终端,又会出现原来的错误
mysql>
GRANT ALL PRIVILEGES ON *.* TO dbuser@"%" WITH GRANT OPTION; mysql>
UPDATE user SET PASSWORD=PASSWORD('123456') , HOST='%' WHERE USER='root'; mysql> delete from user where USER='';
mysql>
\q
2. MySQL错误:Got error 28 from storage engine
现象是:
MySQL 执行语句
SELECT DISTINCT field_report_name_value FROM content_type_product_line_report ;
报错
Got error 28 from storage engine
user warning: Got error 28 from storage engine query: select distinct(field_report_name_value) from content_type_product_line_report where field_report_product_line_nid='39'
产生该错误的原因是:
临时空间不够,无法执行此SQL语句。
解决办法:
清空/tmp目录,或者修改my.cnf中的tmpdir参数,指向具有足够空间目录。
3. The user specified as a definer (''@'') does not exist的解决办法
从公司用Navicat导出sql脚本的数据库,回去后再倒入,运行项目时控制台报的错误如下:
Caused by: java.sql.SQLException: The user specified as a definer (''@'') does not exist
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1075)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3566)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3498)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1959)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2113)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2568)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2113)
at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2275)
at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:76)
at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)
at org.hibernate.loader.Loader.getResultSet(Loader.java:1787)
at org.hibernate.loader.Loader.doQuery(Loader.java:674)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
at org.hibernate.loader.Loader.doList(Loader.java:2220)
... 73 more
以上的出错是上传新工程到服务器上时出的错。出错的意思是数据库访问时没有‘@’这个用户.这主要是在新建视图和存储过程时,直截在mysql可视图形工具里copy代码到服务器上去运行,mysql里会自动生成一些代码,比如copy出来的视图语句:
-- ----------------------------
-- View structure for `sys_teacher_role_view`
-- ----------------------------
DROP VIEW IF EXISTS `sys_teacher_role_view`;
CREATE ALGORITHM=UNDEFINED DEFINER=``@`` SQL SECURITY DEFINER VIEW `sys_teacher_role_view` AS select `tea_teacher`.`teaid` AS `teaid`,`sys_user_role`.`employee_nember` AS `employee_nember`,`tea_teacher`.`staffnumbers` AS `staffnumbers`,`tea_teacher`.`teachername` AS `teachername`,`sys_user_role`.`role_id` AS `role_id`,`tea_teacher`.`identity_card` AS `identity_card` from (`tea_teacher` left join `sys_user_role` on((`sys_user_role`.`employee_nember` = `tea_teacher`.`teaid`)));
应该改为:
-- ----------------------------
-- View structure for `sys_teacher_role_view`
-- ----------------------------
DROP VIEW IF EXISTS `sys_teacher_role_view`;
CREATE VIEW `sys_teacher_role_view` AS select `tea_teacher`.`teaid` AS `teaid`,`sys_user_role`.`employee_nember` AS `employee_nember`,`tea_teacher`.`staffnumbers` AS `staffnumbers`,`tea_teacher`.`teachername` AS `teachername`,`sys_user_role`.`role_id` AS `role_id`,`tea_teacher`.`identity_card` AS `identity_card` from (`tea_teacher` left join `sys_user_role` on((`sys_user_role`.`employee_nember` = `tea_teacher`.`teaid`)));
存储过程也是一样的,往往就会忽略这个问题而导致上面的错误.
4. MySQL异常:
ERROR 1153 (08S01): Got a packet bigger than 'max_allowed_packet' bytes。
这是因为没有调整mysql的默认配置,默认最大只能处理16M的文件,而我要导入的伪造数据有50M的一个SQL。在命令行下也可以查看一下这个配置项的值:
show VARIABLES like '%max_allowed_packet%';
返回结果是字节数,比如1048576,就是1M。
于是调整配置文件: /etc/my.cnf
修改mysql的最大允许包大小
在[mysqld]部分(不在这部分没用)添加一句:
max_allowed_packet=50M
重启mysql服务就可以了。
分享到:
相关推荐
mysql安装问题总结 mysql安装问题总结 mysql安装问题总结 mysql安装问题总结 mysql安装问题总结
本文档将mysql经常出现的错误进行一个比较全面的总结,有了他你就可以很快速的查询到所写的代码出现的是什么错误了。
MySQL的一些基础知识总结。包含mysql编程,mysql操作语言,mysql查询语言,mysql定义语言(数据类型),mysql控制语言(数据库用户管理)和mysql事务语言。
大牛总结 MySql常见错误集锦,可都是工作中的总结呀,必下!
MySQL常见的10个典型错误,Janos Ruszo在percona live上分享的资料
MySQL中⽇志的⾯试题总结 MySQL 有哪些重要的⽇志⽂件? MySQL 中的重要⽇志分为以下⼏个: ① 错误⽇志:⽤来记录 MySQL 服务器运⾏过程中的错误信息,⽐如,⽆法加载 MySQL 数据库的 数据⽂件,或权限不正确等都会...
此文档是本人学习java过程中总结的一些关于MYSQL的简单使用,文档内容简单明了,有截图。 <br>文档包括:1.如何使用命令行窗口操作mysql,以及mysql的常用命令 2.在MYEclipse中如何导入mysql-jdbc.jar,以及...
03-MySQL服务错误日志介绍及实践 04-MySQL服务普通查询日志介绍及实践 05-MySQL服务慢查询日志介绍及实践 06-MySQL服务二进制日志的3种工作模式详细介绍 07-MySQL服务二进制日志的3种工作模式配置方法实战 第十部-...
MySQL数据库启动失败1067进程意外终止的解决办法总结
mysql面试题以及相关技巧经验总结(MySQL常见错误及解决方案、MySQL常用命令速查手册、深入浅出MySQL数据库开发、优化与管理维护、常见面试题、面试技巧、职业规划、经验及技巧大汇总)
mysql使用中需要注意事项,平时常犯的错误 非常适合初学者,多总结多记录。
# 总结 # 设为1当然是最安全的,但性能页是最差的(相对其他两个参数而言,但不是不能接受)。如果对数据一致性和完整性要求不高,完全可以设为2,如果只最求性能,例如高并发写的日志服务器,设为0来获得更高性能 ...
。。。
。。。
...
。。。
还有数据库执行太慢(根据经验基本是没有正确使用索引导致) ,下面就跟着小编来一起看看MYSQL新手们常犯的11个错误吧。 1、使用MyISAM而不是InnoDB MySQL有很多的数据库引擎,单一般也就用MyISAM和InnoDB。 ...
MYSQL常用命令 1.导出整个数据库 mysqldump -u 用名 -p –default-character-set=latin1 数据库名 > 导出的文件名(数据库默认编码是latin1) mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql 2.导出一个表 ...
文章目录1、连接数据库时提示密码出错2、mysql的版本与导入的数据所用的版本不同3、navicat中创建数据库时,所定义的字符集与原数据库使用的字符集不同4、mysql配置文件中设置的最大容量不够了5、在phpstudy中重启...