最近打算在树莓派搭建一个Web服务器放在我中国的家中。在轻车熟路安装了Apache2, PHP以及MySQL后,我发现没有要求我输入数据库root的密码。通过查资料知道可以通过空密码登陆然后修改root密码:
sudo mysql -u root
成功登录后是上边的样子。然后通过下边命令给root账户修改密码:
use mysql; set password=PASSWORD(' your new password'); flush privileges; exit;
命令成功执行后可以查看一下是否可以用新密码登陆:
sudo mysql -u root -p
这时候在命令行已经可以登陆,但是在phpmyadmin中输入正确的账号密码却会有如下的错误:
使用root账户死活登陆不上。可是我明明在另外的服务器可以成功登陆的。。。
通过查资料知道从MySQL 5.7开始安全策略被更改了,使用root登陆MySQL数据库,同时需要Linux也是root账户或者是sudo。而phpmyadmin默认的话是Apache的www-data账户,所以所权限不对。而刚才CLI测试的时候我们有加sudo,所以避开了这个问题。解决方法是最好新建一个账户,然后赋予所有数据库权限就可以了。
首先连接数据库,并打开mysql数据表:
sudo mysql --user=root mysql
然后添加一个新用户,并且赋予所有权限:
CREATE USER 'phpmyadmin'@'localhost' IDENTIFIED BY 'some_pass'; GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES;
这样用新用户就可以登陆phpmyadmin了。另外默认MySQL服务器只允许本机连接,可以通过修改配置文件改为全局。
Reference:
https://askubuntu.com/questions/763336/cannot-enter-phpmyadmin-as-root-mysql-5-7
Pingback: MySQL8 创建新用户 改密码 – 矛盾体