我刚刚安装了xampp,并使用命令行编写mySQL。
我使用没有密码的'root'进行连接mysql,但无法CREATE DATABASE
,因为我收到错误信息1044 access denied for user '' @ 'localhost'
。我作为 -uroot
登录。
虽然我在phpMyadmin中有权限做任何想做的事情,但在命令行中似乎没有写入权限。我已经查看了所有其他相关主题的帖子,但都没有用。由于我本身没有任何权限,所以我无法授予权限。
我刚刚安装了xampp,并使用命令行编写mySQL。
我使用没有密码的'root'进行连接mysql,但无法CREATE DATABASE
,因为我收到错误信息1044 access denied for user '' @ 'localhost'
。我作为 -uroot
登录。
虽然我在phpMyadmin中有权限做任何想做的事情,但在命令行中似乎没有写入权限。我已经查看了所有其他相关主题的帖子,但都没有用。由于我本身没有任何权限,所以我无法授予权限。
你是以root用户身份登录MySQL吗?在以MySQL root用户身份登录时,您必须显式授予权限给您的“普通”MySQL用户帐户。
首先为您的MySQL数据库设置一个root帐户。
在终端中键入:
mysqladmin -u root password 'password'
要登录MySQL,请使用以下内容:
mysql -u root -p
要手动设置权限,可以使用skip-grant-tables选项启动服务器,打开mysql客户端并手动更新mysql.user表和/或mysql.db表。然而,这可能是一项繁琐的任务,所以如果您需要一个具有所有权限的帐户,可以按照以下步骤操作:
使用skip-grant-tables选项启动服务器
启动mysql客户端(不需要用户名/密码)
发出命令:
flush privileges;
这会强制加载授权表。
使用GRANT命令创建一个新帐户,类似于以下内容(但使用您想要使用的用户名和密码进行替换)。
GRANT ALL on *.* to 'username'@'localhost' identified by 'password';
以正常模式重新启动服务器(不使用skip-grant-tables选项),并使用新创建的帐户登录。
参考这个MySQL文档。
导航到 C:\xampp\mysql\bin\ 并确保 mysql.exe 文件在该文件夹中。
mysql -uroot -p
如果没有密码,只需按回车键即可。
提示会更改为
mysql>
执行您的 MySQL 命令
mysql -u root -p;
它将要求输入密码,输入您为root用户设置的密码。
现在您已经以root用户身份登录了:D,现在可以按照自己的意愿进行操作:P
在停止数据库服务器之后,下一步是通过启动数据库服务器并跳过网络和权限表来通过后门访问服务器。可以通过运行以下命令来完成此操作。
sudo mysqld_safe --skip-grant-tables --skip-networking &
现在,数据库服务器已经在安全模式下启动,请运行以下命令以无需密码提示登录为root。要执行此操作,请运行以下命令:
sudo mysql -u root
然后运行以下命令来使用MySQL数据库。
use mysql;
最后,运行以下命令以重置root密码。
update user set password=PASSWORD("new_password_here") where User='root';
请将new_password_here替换为您想要为根账户创建的新密码,然后按Enter键。
之后,请运行下面的命令更新权限并保存您的更改到磁盘中。
flush privileges;
按下CTRL + D退出,完成操作。
接下来正常启动MariaDB,并测试您刚创建的新密码。
sudo systemctl stop mariadb.service
sudo systemctl start mariadb.service
通过运行以下命令登录数据库。
sudo mysql -u root -p
来源: https://websiteforstudents.com/reset-mariadb-root-password-ubuntu-17-04-17-10/
在Ubuntu 17.04 / 17.10上,如果您忘记了MariaDB数据库的root密码,那么可以通过以下步骤重置:
请按照上述步骤操作即可成功重置MariaDB root密码。
服务器文件只需更改文件夹名称
etc/mysql
rename
mysql-
我重新安装了ODBC连接器msi并直接重新安装了mySQL(除了xampp之外),现在它可以正常工作了。我认为这是一个连接器问题,因为“SHOW DATABASES”实际上根本没有显示我的数据库。
我的“root”登录无法访问数据库,这使得它似乎具有有限的权限,但实际上它没有正确连接。
这可能对Ubuntu有所帮助:
进入/etc/mysql/my.cnf并注释掉这一行:
bind-address = 127.0.0.1
在使用-u
和用户名之间不应该有空格:
mysql -uroot -p
# or
mysql --user=root --password