如果您的MySQL密码正确,但仍然无法访问,可能是由些原因引起的:
1. 该MySQL实例可能已经停止运行
2. 您可能没有正确配置MySQL服务器的网络连接
3. 您可能尝试使用错误的MySQL用户名或密码
4. 您可能尝试从不允许连接的IP地址访问MySQL
5. 您可能在MySQL配置文件中设置了错误的端口号
6. 您可能正在尝试从不允许的客户端连接MySQL
7. 您可能正在尝试从不允许的IP地址访问MySQL
解决方法:第一步:如果mysql服务正在进行,将之停止。
第二步:在终端中以管理员权限启动mysqld_safe,命令如下:
sudo/usr/local/mysql/bin/mysqld_safe--skip-grant-tables
执行结果如下:
mysqld_safe Logging to'/usr/local/mysql/data/lyqdeMacBook-Pro.local.err'.2016-06-12T08:29:17.6NZ mysqld_safe Starting mysqld daemon with databasesfrom/usr/local/mysql/data
第三步:不要关闭当前的终端窗口,新建一个终端窗口,输入如下命令,回车登录mysql
/usr/local/mysql/bin/mysql
登录后,看到欢迎信息:
看到结果:
Reading table informationforcompletion of table and column names
You can turn offthisfeature togeta quicker startup with -A
Database changed
mysql>
然后,更新root的密码,SQL如下:
mysql>update usersetauthentication_string=password('root')whereHost='localhost'and User='root'
注意:
①有的版本的mysql中,密码可能存储在password字段中,可以使用"describe user"命令来查看下表结构再 *** 作
②authentication_string的值一定通过password函数来计算(password('root'))
执行结果如下:
Query OK,1row affected,1warning (0.01sec)
Rows matched:1Changed:1Warnings:1
退出mysql(执行sql语句:exit)
最后一步:将mysqld_safe进程杀死,重启mysqld。
错误如下:1045 Access denied for user 'root'@'localhost' (using password:YES)
想起来有可是在navicat添加的root@'%'用户,可能密码和现在新版本5.7的加密不同了,导致密码不对.
所以解决方法是更新用户密码.
注意5.7版本密码保存的列是 authentication_string ,密码要用函数password加密.
更新密码的SQL是 update user set authentication_string=password('密码') where user="root"
下面是Windows平台下 *** 作步骤:
配置文件my.ini ,在mysqld下面添加skip-grant-tables,意思是可以直接回车登录,保存退出。重启mySQL,然后运行cmd
输入mysql -u root -p就可以不用密码登录了,出现password:的时候直接回车可以进入。
1.切换到mysql数据库:use mysql
2.给root用户设置新密码,
mysql>update user set authentication_string=password('密码') where user="root"
3.刷新数据库mysql>flush privileges
4.再修改my.ini,把刚加入的"skip-grant-tables"这行删除或者添加#注释,保存退出再重启mysql服务就可以了。
一些参考命令
#删除之前配置 drop user 'root' @ '%'
#配置远程登录 CREATE USER 'root' @ '%' IDENTIFIED BY password( '你的密码')
#授权 GRANT ALL ON *.* TO 'root' @ '%'
#更新权限 flush privileges
#查看用户,主机,加密方法 select user,host,plugin from user
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)