mysql常见问题
1.不能连接至本地MySQL服务器
在服务器的dos窗口执行mysql -uroot -p指令时,出现以下状况
上图出现的原因是mysql服务器未启动
解决办法:先启动MySQL服务器
Linux启动方式: systemctl start mysqld
windows启动方式: 打开任务管理器,选择服务选项卡,找到mysql服务右键启动;或者在命令行执行net start mysql
2.远程主机‘192.168.0.105’不被允许连接主机‘192.168.0.103’上的MySQL服务器
问题原因:mysql服务器出于安全考虑,默认只允许本地登录数据库服务器。
解决办法:
在mysql服务器所在的主机使用指令mysql -u root -p登录sql,之后执行以下指令
USE mysql;
UPDATE USER SET HOST = '%' WHERE USER ='root';
FLUSH PRIVILEGES;
重启mysql服务,这样就可以远程登录了。
相反,如果不希望远程登录,那么将mysql数据库中的user表的user列为root用户的记录的host列设置为localhost就好了,重启服务后就不能远程登录了。
3.错误提示ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO/YES)
原因:当password为NO是表示未输入密码,为YES表示密码输入错误
转载自:
mysql5.7.6版本后 废弃user表中 password字段 和 password()方法,所以旧方法重置密码对mysql8.0版本是行不通的
上述链接可能是MySQL5.7.6版本以前的方式,在MySQL8.0上没有用
mysql8.0的解决办法:
1>在MySQL配置文件my.cnf的[mysqld]的末尾加上skip-grant-tables保存退出
2>使用systemctl restart mysqld重启服务
3>使用mysql -u root -p指令登录,输入密码时直接按enter键回车就好了。
4>使用update user set authentication_string = '' where user='root' ;清空密码;quit退出客户端
5>修改删除配置文件中的skip-grant-tables,重启mysql服务。
6>使用mysql -u root -p指令登录,输入密码时直接按enter键回车就好了(因为第3步清空了,所有可以直接按enter键登录)。
7>执行ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root2020!';语句更新MySQL密码
转载自:
https://blog.csdn.net/baidu_38558076/article/details/88934506
4.服务器无法启动成功
4.1
MySQL日志显示以下内容
解决办法:
在mysql服务器的配置文件my.inf(Windows)或者my.cnf(Linux)文件中的[mysqld]下添加shared-memory
5.开启或关闭mysql服务发生以下错误
cmd执行net stop mysql显示 发生系统错误5. 拒绝访问
原因:未使用管理员运行cmd
6.密码正确但是拒绝用户连接
Caused by:java.sql.SQLException:Access denied for user 'root'@'XXX' (using password:YES)
转载自:https://www.cnblogs.com/maanshancss/p/9272358.html
5.时区问题
使用是默认时区而不是我们中国的时区,导致时间差8小时
解决办法参考以下2个网址:
https://jingyan.baidu.com/article/597a0643a0faa9712a524322.html