基础环境
版本:mysql 5.7.33
系统:ubuntun0.18.04
一、忘记密码问题
1、编辑配置文件/etc/mysql/mysql.conf.d/mysqld.cnf,注意此为ubuntun的系统(centos系统对应的默认的文件为/etc/my.cnf)
1 | vi /etc/mysql/mysql.conf.d/mysqld.cnf |
在[mysqld]的段中加上一句:skip-grant-tables
例如:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
skip-grant-tables
保存并且退出vi
(i—进入编辑,esc-退出编辑,:wq!—保存并退出)
2、重启mysql服务(每次更改配置文件生效,都需要重启mysql服务)
1 | service mysql restart |
3、免密码登录:输入mysql -u root -p,然后直接回车
1 | mysql -u root -p |
4、重新设置密码,逐行执行以下命令
1 2 3 4 5 | use mysql; update mysql.user set authentication_string=password( '新密码' ) where user= 'root' and Host = 'localhost' ; update user set plugin= "mysql_native_password" ; flush privileges; quit; |
备注:退出mysql命令exit;及quit;
5、取消免密登录
回到 vim /etc/mysql/mysql.conf.d/mysqld.cnf将刚才加入的那一行“skip-grant-tables”注释或删除掉。
5、重启mysql服务(每次更改配置文件生效,都需要重启mysql服务)
1 | service mysql restart |
二、mysql远程不能登录问题
两种方式:
1、给指定ip配置远程访问权限
grant all privileges on *.* to root@"xxx.xxx.xxx.xxx" identified by "密码";
这相当于是给IP-xxx.xxx.xxx.xxx赋予了所有的权限,包括远程访问权限。
然后再输入
flush privileges;
这相当于是重新加载一下mysql权限,这一步必须有。
2、给所有的远程ip配置远程访问权限
向user表新增user=root,host=%的数据
1 2 | update user set host= '%' where user= 'root' ;flush privileges; quit; |
或
1 2 | grant all privileges on \*.* to root@ '%' identified by 'root' ;flush privileges; quit; |
或
回到 vim /etc/mysql/mysql.conf.d/mysqld.cnf,将bind-address改成0.0.0.0
3、重启mysql服务(每次更改配置文件生效,都需要重启mysql服务)
1 | service mysql restart |
三、解决中文乱码
命令行登录mysql
1. 先来执行两条SQL,来检测下当前的MySQL默认字符集编码:
Sql命令:
mysql>show variables like "%colla%";
Sql命令:
mysql>show variables like "%char%";
2、修改配置文件
在[client]下加入代码:
default-character-set=UTF8
在[mysqld]下加入代码:
character_set_server=utf8
在[ mysql ]下加入代码:
default-character-set=utf8
注意:[mysql]、[client] 这两个内容很有可能是不存在的,你需要自己添加上去啊,而且,还要注意,[mysqld]这个配置选项中不能使用default-character-set=utf8这个信息的。
3、重启mysql服务(每次更改配置文件生效,都需要重启mysql服务)
1 | service mysql restart |
4、再次使用命令查看
注意:原来的数据库表的字符集可能设置的不对,若以上操作没问题,但还是乱码,需要重新建一下数据库试试
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?