ubuntu18.04安装了phpmyadmin之后,发现root账户不能登录。
但在终端中sudo mysql -u root -p仍然可以用root登录。
错误代码:
ERROR 1698: Access denied for user ‘root’@’localhost’
这在ubuntu16.04.4的虚拟主机上不存在这个问题。
用phpmyadmin账户登录以后,看不到其他数据库,看不到wordpress数据库就没法备份。
网上查了查:
MySQL 改变了安全模式:现在MySQL root登录需要一个sudo(而密码仍然可以是空白的)。就是说,phpMyAdmin将无法使用根凭证。
解决方法一:
最简单(最安全)的解决方案将创建一个新用户并授予所需的权限。
MySQL赋予用户权限的命令的格式为:
grant 权限 on 数据库对象 to 用户 identified by "密码"
第一步,链接数据库
sudo mysql -u root -p
2. 创建一个用来赋予权限的账户(例如 root_sql)
CREATE USER 'root_sql'@'localhost' IDENTIFIED BY 'yourpasswd'; GRANT ALL PRIVILEGES ON *.* TO 'root_sql'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES;
3.更新phpMyAdmin配置
打开文件/etc/dbconfig-common/phpmyadmin.conf
修改你的配置文件内容
# dbc_dbuser: database user # the name of the user who we will use to connect to the database. dbc_dbuser='root_sql' # dbc_dbpass: database user password # the password to use with the above username when connecting # to a database, if one is required dbc_dbpass='yourpasswd'
解决方法二:
把本来的phpmyadmin账户赋予所有权限,那么你只要执行
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' IDENTIFIED BY 'yourpasswd'; FLUSH PRIVILEGES;
OK了