MySql篇——MySql使用常见问题及解决办法

这里汇总MySql使用常见问题及解决办法,会持续更新。

问题1.ERROR 1819 (HY000): Your password does not satisfy the current policy requirements。

含义:你设置的密码不符合当前的密码等级。

可使用

复制代码
SHOW VARIABLES LIKE 'validate_password%';

查看当前密码等级,然后修改密码等级:

复制代码
mysql数据库5.7和8.0由于全局变量名字改了所以运行的命令不同,但是本质一样。
5.7是:set global validate_password_policy=LOW;
8.0是:set global validate_password.policy=LOW;

问题2.修改某个用户的远程访问密码。

复制代码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'yist55555';

这里root和%均填你实际的用户信息。用户信息可以用以下指令查看:

复制代码
select host,user,plugin from user;

如果ALTER指令提示类似ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'%'的错误,则需要先修改用户的登录验证方式。如上图,root用户的登录验证方式有可能auth_socket或者是caching_sha2_password,你要修改root的登录验证方式为mysql_native_password(常见的密码验证方式),则执行以下指令进行修改。

复制代码
update user set plugin='mysql_native_password' where user='root';

问题3.开放远程连接权限(主要应对Navicat远程连接数据库时提示1698- Access denied for user 错误或者1130-host ... is not allowed to connect to this MySql server错误)

复制代码
grant all privileges on *.* to 'root'@'%' with grant option;

flush privileges;

这里root和%均填你实际的用户信息。(需要先给用户信息设置密码,见问题2)

4.Navicat远程连接时提示2003 - cant connect ro mysql server on xxx (10060 unknown error)

这里通常可以从4个方面进行排查。

①mysql配置文件中只允许本地访问,没有允许远程访问。

找到mysql的配置文件/etc/mysql/mysql.conf.d/mysqld.cnf (我这里mysql的版本是8.0,如果你是其他版本,在/etc/mysql中找类似的配置文件),编辑配置文件,找到bind-address关键字,如果是127.0.0.1则仅允许本地访问,请注释此行,然后执行service mysql restart重启数据库服务。

②防火墙原因。可以先关闭防火墙(平时不需要远程连接数据库的时候最好开启防火墙)

ubuntu系统下关闭防火墙是 ufw disable

CentOS系统是systemctl stop firewalld

Mac系统是sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off

Windows系统是netsh advfirewall set allprofiles state off

③查看你远程登录的数据库的用户是否允许所有ip访问

复制代码
先进入mysql命令行
use mysql;
select host,user,plugin from user;

host显示%则是所有ip可访问。如果不是,使用以下指令修改对应用户的host。

复制代码
先进入mysql命令行
update user set host='%' where user='root';
flush privileges;

④同问题3

相关推荐
好奇的菜鸟1 小时前
如何在IntelliJ IDEA中设置数据库连接全局共享
java·数据库·intellij-idea
tan180°1 小时前
MySQL表的操作(3)
linux·数据库·c++·vscode·后端·mysql
DuelCode2 小时前
Windows VMWare Centos Docker部署Springboot 应用实现文件上传返回文件http链接
java·spring boot·mysql·nginx·docker·centos·mybatis
幽络源小助理2 小时前
SpringBoot基于Mysql的商业辅助决策系统设计与实现
java·vue.js·spring boot·后端·mysql·spring
Hello.Reader3 小时前
Redis 延迟排查与优化全攻略
数据库·redis·缓存
简佐义的博客3 小时前
破解非模式物种GO/KEGG注释难题
开发语言·数据库·后端·oracle·golang
爬山算法3 小时前
MySQL(116)如何监控负载均衡状态?
数据库·mysql·负载均衡
老纪的技术唠嗑局6 小时前
OceanBase PoC 经验总结(二)—— AP 业务
数据库
阿里云大数据AI技术7 小时前
OpenSearch 视频 RAG 实践
数据库·人工智能·llm
m0_623955669 小时前
Oracle使用SQL一次性向表中插入多行数据
数据库·sql·oracle