我在本地的Ubuntu 14机器上运行了mysql服务器(5.5.44)。我可以通过
$ mysql当我要求查看所有的数据库时,只有一个
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
+--------------------+如果我试图创建一个新的数据库,就会得到一个错误。
mysql> CREATE DATABASE purchases;
ERROR 1044 (42000): Access denied for user 'danielsank'@'localhost' to database 'purchases'我对如何解决这个问题感到困惑。我习惯于mysql服务器总是有一个名为mysql的数据库,其中包含用户访问数据:密码、允许的主机等等。我的服务器安装似乎没有。
如果服务器中没有mysql数据库,我如何给自己创建新表的权限?
发布于 2015-08-19 06:09:00
这里的问题是,我调用mysql作为用户danielsank,但该用户没有创建新表的权限,也没有查看mysql数据库的权限!
通过将mysql作为root调用,问题变得清晰起来。
$ mysql -u root
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+现在我们可以看到mysql数据库了,我们可以检查它的用户信息。
mysql> USE DATABASE mysql;
mysql> SELECT User, Host, Password FROM user;
+------------------+-------------------------+-----------------------------+
| User | Host | Password |
+------------------+-------------------------+-----------------------------+
| root | localhost | |
| root | <my machine name> | |
| root | 127.0.0.1 | |
| root | ::1 | |
| debian-sys-maint | localhost | *<a really long string> |
| danielsank | localhost | |
+------------------+-------------------------+-----------------------------+我们可以创建新的数据库
mysql> CREATE DATABASE purchases;并授予danielsank的权限
mysql> GRANT ALL PRIVILEGES ON purchases . * TO 'danielsank'@'localhost';https://dba.stackexchange.com/questions/111502
复制相似问题