zoukankan      html  css  js  c++  java
  • Access denied for user 'root'@'localhost' (using password:YES)

    在用C#连接mysql数据库时,出现了以下错误:

    未经处理的异常
    :  MySql.Data.MySqlClient.MySqlException: Authentication to host '127.0.0.1' for user 'root' using method 'mysql_native_password' failed with message: Access denied for user 'root'@'localhost' (using password: YES) ---> MySql.Data.MySqlClient.MySqlException: Access denied for user 'root'@'localhost' (using password: YES)
    代码如下:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using MySql.Data.MySqlClient;
    using System.Data.SqlClient;
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                string constructorString = "server=localhost;User Id=root;password=root;Database=mysql";
                MySqlConnection myConnnect = new MySqlConnection(constructorString);
                myConnnect.Open();
                MySqlCommand myCmd = new MySqlCommand("insert into user1(name,year) values('jjj',22)", myConnnect);
                Console.WriteLine(myCmd.CommandText);
                if (myCmd.ExecuteNonQuery() > 0)
                {
                    Console.WriteLine("数据插入成功!");
                }         
                myCmd.CommandText = "insert into user1(name,year) values('jjj4',22)";
                Console.WriteLine(myCmd.CommandText);
                if (myCmd.ExecuteNonQuery() > 0)
                {
                    Console.WriteLine("数据插入成功!");
                }
                myCmd.CommandText = "delete from user1";
                Console.WriteLine(myCmd.CommandText);
                if (myCmd.ExecuteNonQuery() > 0)
                {
                    Console.WriteLine("user1表类型数据全部删除成功!");
                }
                myCmd.Dispose();
                myConnnect.Close();
            }
        }
    }

     1.首先先更改my.ini文件

    然后在对应的安装目录中找到my.ini文件

    在打开my.ini文件,添加skip-grant-tables保存退出时,可能会提示权限不足,此时需要找到记事本--》右键以管理员身份运行--》文件--》打开

    然后打开对应目录的my.ini文件,添加skip-grant-tables保存退出

    2.找到命令提示符,右键以管理员身份运行,输入下面命令:

    启动:输入 net stop mysql

    停止:输入 net start mysql

    重启MySQL服务器

    但是命令中的mysql对应的是自己安装的mysql版本,例如我的就是MySQL57

    因此输入命令也不同

    3. cd 进入对应mysql的bin目录,输入mysql -u root -p,要求输入密码时按下回车,就可以免密码登陆

    4.进入mysq数据库,输入use mysql

    5、给root用户设置新密码入

    mysql> update user set password=password("新密码") where user="root";

    但由于我的MySQL版本是MySQL57,因此命令有所不同

    所以更改语句替换为update mysql.user set authentication_string=password('新密码') where user='root' ;即可(两个语句均要注意有分号)

    显示下图即可

    6.刷新数据库,输入mysql> flush privileges;(注意分号)

    7.退出mysql,输入mysql> quit

    然后将my.ini文件中添加的skip-grant-tables语句删除,保存退出。

    然后再次运行上面的代码,成功!

  • 相关阅读:
    SQL CREATE TABLE 语句
    SQL CREATE DATABASE 语句
    SQL INSERT INTO SELECT 语句
    SQL SELECT INTO 语句
    Why is chkconfig no longer available in Ubuntu?
    drag-html
    js利用offsetWidth和clientWidth来计算滚动条的宽度
    procomm plus
    很多shell命令后面的单横杠和双横杠,原来这个意思
    angular md-toast 颜色
  • 原文地址:https://www.cnblogs.com/z12568/p/9833602.html
Copyright © 2011-2022 走看看