我知道这个问题被多次询问,我读了很多关于此的问题,但我认为我的不同。
我使用版本为10.10.3的Mac和一个终端来执行我的命令。
我正在尝试创建一个本地数据库(我以前做过),但出于某种原因,访问权限一直被拒绝。
这就是我的终端的样子:
iMac-van:mysql 639$ /usr/local/mysql/bin/mysql -v
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.24 MySQL Community Server (GPL)
Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Reading history-file /Users/639/.mysql_history
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> quit;
Writing history-file /Users/639/.mysql_history
Bye
iMac-van:mysql 639$ /usr/local/mysql/bin/mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.6.24 MySQL Community Server (GPL)
Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database wordpress_db;
ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'wordpress_db'
如您所见,我可以登录mysql,但我没有权限创建数据库。
我尝试登录:
$ /usr/local/mysql/bin/mysql -u root
和
$ /usr/local/mysql/bin/mysql -u root -p
我没有密码,但我可以在没有密码的情况下输入mysql,但是我无法创建数据库。
选择current_user();返回:
mysql> select current_user();
+----------------+
| current_user() |
+----------------+
| @localhost |
+----------------+
1 row in set (0,00 sec)
答案 0 :(得分:1)
尝试使用--skip-grant-tables
启动mysqlmysqld --skip-grant-tables
然后使用mysql命令行连接到没有用户名/密码的mysqld
shell> mysql
然后发出命令
> mysql> UPDATE mysql.user SET Password=PASSWORD('MyNewPass')
> WHERE User='root'; mysql> FLUSH PRIVILEGES;
答案 1 :(得分:0)
首先,尝试以下命令:
sudo dpkg-reconfigure mysql-server-5.5
但将5.5替换为您当前的mysql-server版本,系统将要求您输入新的root密码。
如果这不起作用,请尝试手册中的these instructions。
答案 2 :(得分:0)
我有同样的问题。
我所要做的就是退出shell并使用mysql -u root -p
再次登录到我的mysql shell中。
然后会提示输入密码。 由于我在设置时没有使用密码,我按下了输入,这就是我的。
我希望这也适合你:)。