mysql版本:5.6.21
系统:windows server2012 R2
正常安装配置后,使用navicat能连接,等各种操作一切正常。因一直习惯了dos命令行操作,就尝试dos连接,却连不上,一直提示:
MySQl无法启动--Can't connect to MySQL server on localhost (10061)
按网上一些办法折腾几时,还是没解决,但是出现如下的诡异【经验不足,自我感觉】情况:
有某些网友提供了这么一个思路,可能是用户权限问题,于是执行了mysqld --skip-grant-tables,跳过验证
再使用mysql -uroot就能进入mysql控制台了!一顿操作,加用户,改权限什么的!
折腾半天,从Navicat进入myql.user表一看,内容并没有变,刚才操作的数据库和Navicat的库并不一样啊。
从系统服务中查看了mysql服务的my.ini配置文件,C:\ProgramData\MySQL\MySQL Server 5.6\my.ini,其中
datadir=
C:/ProgramData/MySQL/MySQL Server 5.6/Data,这个为数据库目录。确定为Navicat正常链接的数据库目录。
后排查到:通过跳过验证方式,再使用dos 下mysql控制台进入操作的库的目录用的是
C:/Program Files/MySQL/MySQL Server 5.6\data 下的数据库.
DOS下show databases的结果:
Navicat中show databases的结果:
kill mysql相关的各种进程,重启服务后,Navicat依然正常。dos又不能使用了 ,必须要执行mysqld --skip-grant-tables才能进。但是
结果就是操作的库根本不是my.ini中指定的。希望有大佬指点迷津 ,谢谢!
附上my.ini指定库的mysql.user表内容【且通过其他电脑navicat能够远程连接并操作数据库】
localhost root password Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y 0 0 0 0 N
127.0.0.1 root password Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y 0 0 0 0 N
::1 root password Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y 0 0 0 0 N
% root password Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y 0 0 0 0 N