您的位置:首页 > 编程语言 > Java开发

Java笔记---Mysql使用中的报错

2016-03-26 16:11 393 查看

一、’mysql’ 不是内部或外部命令,也不是可运行的程序或批处理文件

发生场景

本地 Windows 机器下的 cmd 中,远程登录 mysql

错误原因

本机未将 mysql 配置添加入环境变量 Path 中

错误解决

配置环境变量

① 新建变量 MYSQL-HOME



② 将 MYSQL-HOME 纳入 Path 中



结果:在本机的 Dos 下测试



再次远程登录:





二、ERROR 1130:Host ‘XXX’ is not allowed to connect to this MySQL server

发生场景

本地机器远程登录 mysql

错误原因

未在远程服务器上给用户赋予远程登录权限

错误解决

远程机器上 mysql 赋予远程登录权限,执行命令grant all privileges on . to ‘root’@’%’ identified by ‘root’ with grant option;



命令详解:
# 将所有权限赋予给 root 用户,允许其进行远程登录
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
参数解释:
① all privileges:赋予所有的权限给指定用户,也可以替换为赋予某一具体的权限
② *.*:所赋予的权限是针对全部数据库的全部表。若指定某一具体数据库的具体表,如:thinkphp_user
③ root:表示给root用户授权
④'%':表示不限制连接的 IP。若想只允许某特定的 IP 进行远程登录,可以改为具体 IP。
⑤ by 'root':root 用户的密码


三、java.lang.ClassNotFoundException: com.mysql.jdbc.Driver xxx

发生场景

CenOS 下使用 Java 程序连接 mysql 数据库,获取数据库中的记录

错误原因

找不到 mysql 的驱动 jar

错误解决

查看当前 mysql 的版本,将对于版本的 mysql 驱动 jar 使用 cp 命令复制到将连接驱动拷贝到Java的安装目录下,即 /usr/lib/jvm/java-1.xxx/jre/lib/ext/ 下,使得 Java 程序找到 mysql 驱动 jar

四、java.sql.SQLException: Access denied for user ‘root’@’localhost’ (using password: YES)

发生场景

使用 Java 程序连接 mysql 数据库,获取数据库中的记录

错误原因

可能的原因

1. 密码不正确

2. 使用 root 用户连接,而在 Linux 系统下,root 用户默认是不用密码的

错误解决

根据原因来更改。本人是因为使用 root,因此将密码置空





五、ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)

发生场景

为解决 mysql 乱码问题,直接修改了 mysql 的 my-medium.cnf, 导致配置文件错误,找不到 mysql.sock 文件,启动失败

错误原因

mysql启动失败,没有产生 mysql.sock 文件

错误解决

将配置文件还原还不行。将mysql卸载重装,还是不行。于是查看 mysql 的错误日志,发现错误:Error:Can’t open and lock privilege tables: Table ‘mysql.user’ doesn’t exist。



意思就是 mysql 表出现了问题,解决办法:重新初始化 mysql。执行命令:mysql_install_db –usrer=mysql



这样,再次启动 mysql,命令 service mysqld restart,就ok了

六、MySQL Daemon failed to start.

情况同 ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)

七、Error:Can’t open and lock privilege tables: Table ‘mysql.user’ doesn’t exist

情况同 ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)

八、ERROR 1064(42000):You have an error in you SQL syntax; check the manual that the right syntax to use near ‘database’ at line 1

发生场景

执行 sql 文件,该 sql 文件中的数据库为 thinkphp,里面有一张拥有记录的 user 表



错误原因

当前 mysql 中没有 thinkphp 这个数据库

错误解决

执行命令 create database thinkphp 创建 thinkphp 数据库,然后执行 use thinkphp 命令,再执行 sql 文件即可。



九、ERROR 1005(HY000): Can’t create table ‘mysql.user’,ERROR 1146(420S02): Table ‘mysql.user’ doesn’t exist

发生场景

执行 sql 文件,该 sql 文件中的数据库为 thinkphp,里面有一张拥有记录的 user 表



错误原因

当前使用的是 mysql 数据库,而不是 thinkphp 数据库,因而不能执行。

错误解决

切换到 thinkphp 数据库:使用 use thinkphp 命令后,再次执行 sql 文件,就行了

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java mysql error