我在使用phpMyAdmin或其他应用程序连接到Mac上的本地MySql数据库时遇到问题。他们都给了我这个错误:
但是,通过我的mac上的终端连接没问题:
mysql -u root -pmypassword
让我直接进入mysql控制台,在那里我可以访问所有数据库。
当我尝试任何其他方式连接到数据库时 - 我得到一个Access Denied异常。我100%确定我的root密码是正确的,因为它可以从控制台运行。我也尝试用localhost
替换127.0.0.1
,但这没有帮助。
以下是状态信息:
mysql Ver 14.14 Distrib 5.6.21, for osx10.8 (x86_64) using EditLine wrapper
Connection id: 2
Current database:
Current user: verse@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.6.21 MySQL Community Server (GPL)
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: latin1
Db characterset: latin1
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /tmp/mysql.sock
Uptime: 32 min 40 sec
我的config.inc.php
如下所示:
$ cfg ['Servers'] [$ i] ['verbose'] ='';
$ cfg ['Servers'] [$ i] ['host'] ='127.0.0.1';
$ cfg ['Servers'] [$ i] ['port'] ='3306';
$ cfg ['Servers'] [$ i] ['socket'] ='/ tmp / mysql.sock';
$ cfg ['Servers'] [$ i] ['connect_type'] ='socket';
$ cfg ['Servers'] [$ i] ['auth_type'] ='config';
$ cfg ['Servers'] [$ i] ['user'] ='root';
$ cfg ['Servers'] [$ i] ['password'] ='mypassword';
$ cfg ['Servers'] [$ i] ['AllowNoPassword'] = true;
可能导致此问题的原因是什么?
P.S。一些评论者指出,问题可能是由连接类型(Unix Socket vs TCP)引起的。我尝试使用TCP(mysql --host=127.0.0.1 -u root -pmypassword
从终端进行连接,确实出现错误:
ERROR 1045(28000):用户'root'@'localhost'拒绝访问(使用密码:YES)
但是,root
用户是否应该访问所有数据库,无论连接类型如何?如何授予root
通过TCP连接的权限?