MySQL报错

1. The MySQL server is running with the --secure-file-priv option ***

  • 问题:secure-file-priv 未配置或配置与当前使用路径冲突。secure-file-priv 参数是用来限制 mysql 下数据导入导出只能发生的路径下。
secure-file-priv 参数值 说明
'' 表示 mysqld 允许在任何路径下导入导出
null 表示 mysqld 不允许导入导出
path 表示 mysqld 允许导入导出只能在 path 路径下
  • 解决:找到配置文件 my.cnf(Linux 下一般为 /etc/mysql/my.cnf)或 my.ini(Windows 下一般为 C:\ProgramData\MySQL\MySQL Server x.y\my.ini,x.y 为 mysql 版本号),添加以下内容:
1
2
[mysqld]    # 文件中有则不用添加这句,只需将下面语句追加到 [mysql] 限定的部分的末尾即可
secure_file_priv=''

然后重启 mysql (Linux 下在终端运行 sudo service mysql restart,Windows 下在 CMD 下先运行 net stop mysql 后运行 net start mysql)。

2. Found option without preceding group in config file ***

  • 问题修改了配置文件 my.cnf(Linux)或 my.ini(Windows)时并未指定组。比如 1 中在配置文件中添加的 secure_file_priv='' 需指定组 [mysql]
  • 解决,将对应修改限定到对应组中。

3. ERROR 1045 (28000): Access denied for user 'xxx'@'localhost' (using password: NO)

  • 问题:权限检查问题
  • 解决:使用超级用户权限登录,比如:Linux 下 sudo mysql -h localhost -u root -p,Windows 下以管理员身份登录 CMD ,然后 mysql -h localhost -u root -p。或者修改配置文件,跳过权限检查:找到配置文件 my.cnf(Linux 下一般为 /etc/mysql/my.cnf)或 my.ini(Windows 下一般为 C:\ProgramData\MySQL\MySQL Server x.y\my.ini,在组 [mysqld] 下添加一行命令:
1
skip-grant-tables

然后保存退出,重启 mysql(Linux 下在终端运行 sudo service mysql restart,Windows 下在 CMD 下先运行 net stop mysql 后运行 net start mysql)。

4. ERROR 29 (HY000): File 'xxx' not found (OS errno 13 - Permission denied)

  • 问题:访问权限问题
  • 解决:修改文件 /etc/apparmor.d/usr.sbin.mysqld,仿照其中内容添加该文件所在目录的权限,比如:
1
2
3
# Allow access to home
/home/ r,
/home/** rwk,

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!