如何在AWS EC2实例的MySQL 5.7.20中设置/修改root密码并解决权限报错
兄弟,我懂你这种被权限和MySQL配置折腾的烦躁!这个问题其实是因为MySQL需要的套接字目录不仅得存在,还得归对用户所有。我给你一步步捋清楚怎么解决:
步骤1:创建目录并设置正确的权限
你之前直接用mkdir没加sudo所以权限不够,而且就算强行创建了目录,MySQL进程也没法用它——因为目录的所有者不是MySQL运行的用户。执行这两条命令:
sudo mkdir -p /var/run/mysqld sudo chown mysql:mysql /var/run/mysqld
chown mysql:mysql是把目录的所有权切换给MySQL专属的用户和组,这样mysqld进程才能正常读写这个目录里的套接字文件。
步骤2:启动跳过授权表的MySQL服务
现在目录权限没问题了,重新执行跳过授权表的启动命令:
sudo mysqld_safe --skip-grant-tables &
后面的&是让进程在后台运行,方便你继续执行后续操作。
步骤3:登录MySQL并修改root密码
现在不需要密码就能直接登录MySQL了:
mysql -u root
进入MySQL命令行后,执行下面的SQL语句修改密码(记得把your_new_password换成你自己想设置的密码):
USE mysql; UPDATE user SET authentication_string=PASSWORD('your_new_password') WHERE User='root'; FLUSH PRIVILEGES; EXIT;
划重点:MySQL 5.7版本里,存储密码的字段是authentication_string,不是旧版本的password,别写错了!
步骤4:重启MySQL服务验证
先停止刚才后台运行的mysqld_safe进程,再启动正常的MySQL服务:
sudo pkill mysqld_safe sudo /etc/init.d/mysql start
现在你就可以用新密码登录MySQL了:
mysql -u root -p
输入你刚设置的密码,就能正常进入数据库啦。
内容的提问来源于stack exchange,提问作者Krzysztof Musialik
相关产品推荐
相关产品推荐

