在用C#連接mysql數據庫時,出現了以下錯誤:
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語句刪除,保存退出。
然后再次運行上面的代碼,成功!