一、’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 [email protected]%’ 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 [email protected] (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 文件,就行了