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

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

发生场景

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

错误原因

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

错误解决

配置环境变量
① 新建变量 MYSQL-HOME
Java笔记---Mysql使用中的报错_第1张图片
② 将 MYSQL-HOME 纳入 Path 中
Java笔记---Mysql使用中的报错_第2张图片
结果:在本机的 Dos 下测试
Java笔记---Mysql使用中的报错_第3张图片

再次远程登录:
Java笔记---Mysql使用中的报错_第4张图片
Java笔记---Mysql使用中的报错_第5张图片


二、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;
3

命令详解:
  # 将所有权限赋予给 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,因此将密码置空
Java笔记---Mysql使用中的报错_第6张图片
5


五、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。
Java笔记---Mysql使用中的报错_第7张图片

意思就是 mysql 表出现了问题,解决办法:重新初始化 mysql。执行命令:mysql_install_db –usrer=mysql
Java笔记---Mysql使用中的报错_第8张图片
这样,再次启动 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 表
Java笔记---Mysql使用中的报错_第9张图片

错误原因

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

错误解决

执行命令 create database thinkphp 创建 thinkphp 数据库,然后执行 use thinkphp 命令,再执行 sql 文件即可。
Java笔记---Mysql使用中的报错_第10张图片

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

发生场景

执行 sql 文件,该 sql 文件中的数据库为 thinkphp,里面有一张拥有记录的 user 表
Java笔记---Mysql使用中的报错_第11张图片

错误原因

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

错误解决

切换到 thinkphp 数据库:使用 use thinkphp 命令后,再次执行 sql 文件,就行了
Java笔记---Mysql使用中的报错_第12张图片

你可能感兴趣的:(Java,mysql,Linux)