连接MySQL数据库流水账

用navicat连接本地的MySQL数据库,发现用localhost连接可以连得上,但是用IP却连不上。

解决方法:

grant all privileges on *.* to 'root'@'%' identified by 'root'; //所有IP下root用户可以访问,密码为root

 flush privileges;

重启服务,连接,大功告成。

---------------下面是解决这个问题的乱七八糟的思路,记录给自己看的----------------------

一、默认用户名root密码为空,用IP连的话失败。首先考虑到的是没给root设置密码。

1、用wamp自带的MySQL控制台登录,密码为空,直接回车。

set password for root@localhost = password('123456'); //将密码改为123456,PASSWORD为密码加密函数

flush privileges;//重新加载权限表;

2、修改“D:\wamp\apps\phpmyadmin4.1.14\config.inc.php”文件。

将非自动登录模式切换至自动登录模式,设置用户名密码。

//$cfg['Servers'][$i]['auth_type'] = 'cookie';//非自动登录

$cfg['Servers'][$i]['auth_type'] = 'config';//自动登录
$cfg['Servers'][$i]['user'] = 'root';
//$cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['password'] = '123456';

虽然经过验证这部分操作对于用Navicat连MySQL一点作用都没起,这部分影响的应该是网页连接数据库。不同模式的区别参考

http://www.360doc.com/content/15/0319/10/22355405_456363609.shtml

3、重启服务:

连接MySQL数据库流水账_第1张图片

连接MySQL数据库流水账_第2张图片

再次连接,没用。。。

二、可能是权限问题,应该给其他用户也赋访问权限才行。

grant all privileges on *.* to 'root'@'%' identified by 'root'; //所有IProot用户可以访问,密码为root

 flush privileges;

重启服务,连接,大功告成。

MySQL> grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by ‘连接口令’;

权限1,权限2,…权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。
当权限1,权限2,…权限n被all privileges或者all代替,表示赋予用户全部权限。
当数据库名称.表名称被*.*代替,表示赋予用户操作服务器上所有数据库所有表的权限。
用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用’%'表示从任何地址连接。
‘连接口令’不能为空,否则创建失败。


 三、遗留问题,应该还是用户权限导致的

1、设置root密码为“123456”后,直接连localhost密码为空可连,用123456连不上,为啥?

2、用wamp自带的MySQL控制台登录时密码为123456,用root登录不可以,为啥?

答案整理在这里啦!

http://blog.csdn.net/miaowumi92/article/details/69802484


你可能感兴趣的:(连接MySQL数据库流水账)