当我使用mysqld_safe在CentOS7中启动我的MySQL时:
[root@localhost bin]# mysqld_safe --skip-grant-tables &
[1] 32586
[root@localhost bin]# 2017-09-07T13:29:36.423040Z mysqld_safe Logging to '/usr/local/mysql/data/localhost.localdomain.err'.
2017-09-07T13:29:36.456574Z mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
它卡在mysqld_safe Starting mysqld daemon
。
我找到了SO,没有找到这篇文章,有些类似,但没有卡住,他们直接报告错误。
MySQL版本为5.7.19
我的要求是更改用户root
的密码。
答案 0 :(得分:3)
最后,我发现如果更改mysql版本大于5.7的密码,我们不应该使用过时的方法。
正确的方法:
在mysql配置文件/etc/my.cnf
中,在skip-grant-tables
中添加[mysqld]
。
重启mysql(/etc/init.d/mysqld restart
)
启动mysql(type mysql directly
)
更改用户密码(root
)
ALTER USER 'root'@'localhost'IDENTIFIED BY 'newpassword'
退出mysql并删除skip-grant-tables
中的/etc/my.cnf
然后您可以使用mysql -u root -p
立即登录mysql。
答案 1 :(得分:1)
要更改root用户的密码,可以运行mysql_secure_installation
https://mariadb.com/kb/en/library/mysql_secure_installation/
答案 2 :(得分:0)
对于Ubuntu 18和MySQL 5.7配置
nano /etc/mysql/mysql.conf.d/mysqld.cnf
在skip-grant-tables
下添加[mysqld]
systemctl restart mysql
mysql
现在,您可以更改root或任何密码
并在更改密码后删除skip-grant-tables
下的[mysqld]
,然后再次systemctl restart mysql
以恢复正常功能。