我刚刚安装了xampp,并且正在使用命令行来编写mySQL。
我使用没有密码的“root”并且可以连接到mysql,但是因为我收到错误CREATE DATABASE
而无法1044 access denied for user '' @ 'localhost'
。我以-uroot
登录。
我在phpMyadmin中有权限做我想要的,但是,在命令行中我似乎没有写权限。我查看了有关此主题的所有其他相关帖子,但无济于事。我无法获得特权,因为我无论如何都没有。
答案 0 :(得分:69)
您是否以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),并使用新创建的帐户登录。
参考this MySQL文档。
答案 1 :(得分:10)
导航到C:\ xampp \ mysql \ bin \并确保文件mysql.exe在该文件夹中。
mysql -uroot -p
如果没有密码,只需按Enter键。
提示符更改为
mysql>
执行你的mysql命令
答案 2 :(得分:6)
默认情况下,XAMPP中没有为root用户设置密码。
您可以为MySQL的root用户设置密码。
导航至
本地主机:80 /安全/ index.php的
并为root用户设置密码。
注意:如果您的Apache位于不同的端口,请更改上面网址中的端口号。
打开XAMPP控制面板单击“Shell”按钮
现在将在该窗口类型
中打开命令提示符窗口mysql -u root -p;
它会要求输入密码,输入您为root用户设置的密码。
你以root用户身份登录:D现在做你想做的事:P
答案 3 :(得分:1)
停止数据库服务器后,下一步是通过启动数据库服务器并跳过联网和权限表来通过后门获得对服务器的访问。这可以通过运行以下命令来完成。
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/
答案 4 :(得分:0)
我重新安装了ODBC连接器msi并直接重新安装了mySQL(除了xampp),它现在可以工作了。我认为这是一个连接器问题,因为SHOW DATABASES实际上根本没有显示我的数据库。
我的“root”登录无法访问数据库,这使得它似乎具有有限的权限,但实际上没有正确连接。
答案 5 :(得分:0)
服务器文件仅更改名称文件夹
etc/mysql
rename
mysql-
答案 6 :(得分:0)
我遇到了同样的问题,事实证明,MariaDB被设置为仅允许root用户通过unix_socket插件本地登录,因此清除该设置允许使用命令行上指定的用户成功登录,当然,只要输入正确的密码即可。 看到这个answer on Ask Ubuntu
答案 7 :(得分:-1)
这可能有助于Ubuntu:
转到/etc/mysql/my.cnf并评论此行:
bind-address = 127.0.0.1
希望这有助于某些人,我也一直在寻找这个
干杯
答案 8 :(得分:-2)
-u
与用户名之间不能有空格字符:
mysql -uroot -p
# or
mysql --user=root --password