我刚刚以普通用户(vivek)身份登录 Ubuntu 12.04 并打开终端创建数据库,我写道:
create database Hello;
我遇到的错误是:
ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'vivek'
如果我以 root 用户身份登录,则 MySQL 甚至无法打开并显示错误消息:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
现在做什么。
答案1
要以 root 用户身份登录 MySQL,您可以使用:
mysql -u root -p
然后输入您的 MySQL 密码。
要以其他用户身份登录,您必须先创建该用户并授予他权限。
使用创建用户 - 更改newuser
为您想要的用户名和password
您选择的密码。
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
遗憾的是,此时用户newuser
没有权限对数据库执行任何操作。
因此,第一阶段是授予用户执行“操作”的权限。
要授予所有数据库和表的所有权限(选择、创建、删除、更新、删除等),请运行:
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
要授予特定数据库和表的特定权限,只需运行:
GRANT [type of privilege] ON [database name].[table name] TO '[username]'@'localhost';
如果您需要拒绝或撤销某项权限,只需运行:
REVOKE [type of permission] ON [database name].[table name] FROM '[username]'@'localhost';
答案2
以保存模式打开mysql
sudo mysqld_safe --skip-grant-tables
===============================
以 root 用户身份登录 mysql
mysql -u root
===============================
授予该帐户的所有权限
GRANT ALL PRIVILEGES ON `%`.* TO 'root'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
我认为这也会起作用......