VPS服务器上MySQL5.7两大常见问题解决
文章分类:行业新闻 /
创建时间:2026-01-28
在[vps服务器](/cart/goodsList.htm)(虚拟专用服务器,通过虚拟化技术拆分物理服务器,提供独立资源与操作权限的云服务)上部署MySQL 5.7后,大概率会遇到两个高频问题:root密码彻底遗忘,或是网站访客增多后MySQL提示连接不上。今天把这两个问题的解决方法拆解清楚,编程新手也能跟着一步步操作。
用root账户登录MySQL时,终端反复提示“Access denied for user 'root'@'localhost' (using password: YES)”,排除输入错误后,基本能确定是root密码彻底遗忘——就像丢了家里保险箱的密码条,怎么也打不开门。
我们得先让MySQL暂时取消密码验证,进去后再重新设置新密码,具体步骤如下:
1. 停止vps服务器上的MySQL服务
执行命令:
这就好比先把保险箱的电源关掉,让它暂时不查密码。
2. 启动MySQL跳过权限验证模式
执行命令:
这里的`--skip-grant-tables`是告诉MySQL,这次开门不用查密码,直接进入后台运行服务。
3. 无密码登录root账户
执行命令:
此时能直接进入MySQL管理界面,无需输入任何密码。
4. 重置root密码
先切换到mysql系统数据库:
再执行密码重置命令(MySQL5.7使用`authentication_string`字段,而非老版本的`password`):
最后刷新权限让设置生效:
这一步相当于在保险箱系统里录入新密码,让它记住新的验证信息。
5. 重启MySQL服务并验证
退出MySQL:
重启服务:
用新密码登录测试:
网站或应用突然卡顿、响应变慢,查看MySQL错误日志发现“Too many connections”提示;或是登录MySQL后执行
调整连接数分临时生效和永久生效两种方式:
1. 临时调整(重启MySQL后失效)
登录MySQL后执行命令:
这个命令能立刻把最大连接数改成500,vps服务器或MySQL重启后设置会变回默认值,适合临时应对访问高峰。
2. 永久调整(重启后依然生效)
① 编辑MySQL配置文件,CentOS系统一般是`/etc/my.cnf`,Ubuntu系统是`/etc/mysql/mysql.conf.d/mysqld.cnf`
② 在`[mysqld]`区块下添加一行:
③ 保存文件后,重启MySQL服务:
这一步相当于给餐馆永久扩建座位,下次开门时座位数就是新的数量。
3. 验证调整结果
登录MySQL后执行
不要把连接数调得过大,要根据**vps服务器**配置来:1核1G内存的**vps服务器**,建议设置在200以内;2核4G内存的**vps服务器**可设置到500-800。盲目调得太大,MySQL会占用过多**vps服务器**内存,导致整个服务器卡顿甚至崩溃——就像餐馆扩建座位不能超过店铺实际面积,不然客人都挤得站不下。
问题一:忘记MySQL 5.7 root密码怎么找回?
现象&诊断
用root账户登录MySQL时,终端反复提示“Access denied for user 'root'@'localhost' (using password: YES)”,排除输入错误后,基本能确定是root密码彻底遗忘——就像丢了家里保险箱的密码条,怎么也打不开门。
解决步骤(以CentOS系统为例)
我们得先让MySQL暂时取消密码验证,进去后再重新设置新密码,具体步骤如下:
1. 停止vps服务器上的MySQL服务
执行命令:
systemctl stop mysqld这就好比先把保险箱的电源关掉,让它暂时不查密码。
2. 启动MySQL跳过权限验证模式
执行命令:
mysqld_safe --skip-grant-tables &这里的`--skip-grant-tables`是告诉MySQL,这次开门不用查密码,直接进入后台运行服务。
3. 无密码登录root账户
执行命令:
mysql -u root此时能直接进入MySQL管理界面,无需输入任何密码。
4. 重置root密码
先切换到mysql系统数据库:
use mysql;再执行密码重置命令(MySQL5.7使用`authentication_string`字段,而非老版本的`password`):
UPDATE mysql.user SET authentication_string=PASSWORD('你的新密码') WHERE User='root' AND Host='localhost';最后刷新权限让设置生效:
FLUSH PRIVILEGES;这一步相当于在保险箱系统里录入新密码,让它记住新的验证信息。
5. 重启MySQL服务并验证
退出MySQL:
exit;重启服务:
systemctl restart mysqld用新密码登录测试:
mysql -u root -p,输入新密码后能成功进入,说明找回成功。问题二:MySQL 5.7连接数不够用怎么调整?
现象&诊断
网站或应用突然卡顿、响应变慢,查看MySQL错误日志发现“Too many connections”提示;或是登录MySQL后执行
show variables like 'max_connections';,看到当前最大连接数默认是151,再执行show global status like 'Threads_connected';,发现已连接线程数接近或超过151——这就好比小餐馆只有151个座位,高峰期客人太多坐不下,只能排队甚至离开。解决步骤
调整连接数分临时生效和永久生效两种方式:
1. 临时调整(重启MySQL后失效)
登录MySQL后执行命令:
set global max_connections=500;这个命令能立刻把最大连接数改成500,vps服务器或MySQL重启后设置会变回默认值,适合临时应对访问高峰。
2. 永久调整(重启后依然生效)
① 编辑MySQL配置文件,CentOS系统一般是`/etc/my.cnf`,Ubuntu系统是`/etc/mysql/mysql.conf.d/mysqld.cnf`
② 在`[mysqld]`区块下添加一行:
max_connections=500③ 保存文件后,重启MySQL服务:
systemctl restart mysqld这一步相当于给餐馆永久扩建座位,下次开门时座位数就是新的数量。
3. 验证调整结果
登录MySQL后执行
show variables like 'max_connections';,返回值为设置的500,说明调整成功。注意事项
不要把连接数调得过大,要根据**vps服务器**配置来:1核1G内存的**vps服务器**,建议设置在200以内;2核4G内存的**vps服务器**可设置到500-800。盲目调得太大,MySQL会占用过多**vps服务器**内存,导致整个服务器卡顿甚至崩溃——就像餐馆扩建座位不能超过店铺实际面积,不然客人都挤得站不下。
工信部备案:苏ICP备2025168537号-1