首页 > 数据库 >c# 远程连接局域网数据库方法

c# 远程连接局域网数据库方法

时间:2023-04-15 11:44:54浏览次数:36  
标签:c# lo 数据库 cmd 局域网 using root conn

#region 远程数据库连接测试
//需给远程数据库分配所有权限
// cmd命令: grant all privileges on *.* to 'root'@'%' with grant option;
string connStr = "Database=MyDataBase;Data Source=" + "192.168.2.206" + ";port=3306;User Id=root;Password=root;";

MySqlConnection conn = new MySqlConnection(connStr);
conn.Open();
MySqlCommand cmd = new MySqlCommand("select * from MyTable", conn);
//执行命令--读取数据
MySqlDataReader reader = cmd.ExecuteReader();
DataTable dt = new DataTable();
if (reader.HasRows)
{
//读取MySqlDataReader里的内容
dt.Load(reader);
}
reader.Close();
cmd.Dispose();
conn.Close();
conn.Dispose();
return;
#endregion
//************************

c# 远程连接数据库方法
1、导入命名空间
using System.Data.SqlClient; //连接SQLServer 数据库专用

2、创建连接
SqlConnection lo_conn = New SqlConnection("Server=服务器名字或IP;Database=数据库名字;uid=用户名;pwd=密码");

3、打开连接,第2步并没有真正连接数据库
lo_conn.Open(); //真正与数据库连接

4、向数据库发送SQL命令要使用SqlCommand:
SqlCommand lo_cmd = new SqlCommand(); //创建命令对象
lo_cmd.CommandText = "这里是SQL语句"; //写SQL语句
lo_cmd.Connection = lo_con; //指定连接对象,即上面创建的

5、处理SQL命令或返回结果集
lo_cmd.ExecuteNonQuery(); //这个仅仅执行SQL命令,不返回结果集,实用于建表、批量更新等不需要返回结果的操作。
SqlDataReader lo_reader = lo_cmd.ExecuteReader();//返回结果集

6、以数据集的方式反回结果集
SqlDataAdapter dbAdapter = new SqlDataAdapter(lo_cmd); //注意与上面的区分开
DataSet ds = new DataSet(); //创建数据集对象
dbAdapter.Fill(ds); //用返回的结果集填充数据集,这个数据集可以被能操作数据的控件DataBind,其它的就自己发挥了吧

7、关闭连接
lo_conn.Close();

//**********************************

C#连接云数据库
1.宝塔面板放行数据库默认3306端口:

2.设置数据库权限-所有人或者指定ip,指定ip需要你本机的ip:

3.操作C#写方法下的连接语句:
连接前导入引用:MySql.Data.dll (顶部有下载链接),不知道怎么导入,可以去我的另一篇博客
在顶部using一下:using MySql.Data.MySqlClient;

代码如下:

using System;
using MySql.Data.MySqlClient;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{

String connetStr = "server=服务器主机ip;port=3306;user=数据库用户名;password=密码;database=数据库名;";

MySqlConnection conn = new MySqlConnection(connetStr);
try
{
conn.Open();//打开通道,建立连接


Console.WriteLine("连接成功!");

//在这里使用代码对数据库进行增删查改


Console.ReadKey(); //让程序运行得到结果不终止
}
catch (MySqlException ex)
{

Console.WriteLine(ex.Message); //有异常,打印错误信息到控制台

}
finally
{
conn.Close();
}
} }
}

//**************远程连接问题解决

mysql Access denied for user 'root'@'localhost' (using password: YES)
【现象说明】

C/S程序远程访问正常,本地访问报以下异常

MySql.Data.MySqlClient.MySqlException (0x80004005): Authentication to host 'localhost' for user 'root' using method 'mysql_native_password' failed with message: Access denied for user 'root'@'localhost' (using password: YES) ---> MySql.Data.MySqlClient.MySqlException (0x80004005): Access denied for user 'root'@'localhost' (using password: YES)
配置文件如下:

<add name="RemoteConnString" connectionString="Database='mealbooker';Data Source='localhost';User Id='root';Password='123456';charset='gb2312';pooling=true" providerName="MySql.Data.MySqlClient"/>

【分析】
权限问题吧,查看下mysql数据库中的user表


发现localhost下面值为空,于是connection string中的localhost 改为 127.0.0.1,测试通过~~~
【解决】


配置文件中改为localhost,访问数据库正常;同时mysql command line工具输入密码后一闪而过问题同时解决。

重启之后又访问不了,继续上面的思路修改:

另,mysql command line工具一闪而过,方法参见这里


另一个权限相关问题:

Error Code: 1370 execute command denied to user 'root'@'localhost' for routine

使用grant execute on procedure/function dbname.fname TO 'root'@'localhost';

另一密码相关问题(调试机放几天后就没法远程访问了,root密码被改动,不明原因):

Authentication to host '10.10.123.6' for user 'root' using method 'mysql_native_password' failed with message: Access denied for user 'root'@'10.10.123.5' (using password: YES) ---> MySql.Data.MySqlClient.MySqlException (0x80004005): Access denied for user 'root'@'10.10.123.5' (using password: YES)
修改password语句如下:


然后还要给远程用户非配权限

grant all privileges on *.* to 'root'@'%' with grant option;
————————————————
版权声明:本文为CSDN博主「luckyone906」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u011555996/article/details/115640494

标签:c#,lo,数据库,cmd,局域网,using,root,conn
From: https://www.cnblogs.com/heizao/p/17320784.html

相关文章

  • Python Web全栈工程师「课代表itspcool」
    PythonWeb全栈工程师核心代码,注释必读//下、栽、课、呈茄/:itspcool进入Python世界,打开编程之门Python语法基础一、标识符所谓的标识符就是对变量、常量、函数、类等对象起的名字。首先必须说明的是,Python语言在任何场景都严格区分大小写!Python对于标识符的命名......
  • D. Connected Components
    D.ConnectedComponentshttps://www.codeforces.com/contest/292/problem/D 思路由于需要删除任意连续段的连接线,引入前缀和连续段的左右两边都需要,所以引入两个前缀和。 https://blog.csdn.net/qq_28954601/article/details/79281640Codehttps://blog.csdn.net/q......
  • 远程连接MySQL数据库
    远程连接MySQL数据库一、连接远程数据库:1、显示密码如:MySQL连接远程数据库(192.168.5.116),端口“3306”,用户名为“root”,密码“123456”mysql-h192.168.5.116-P3306-uroot-p1234562、隐藏密码如:MySQL连接本地数据库,用户名为“root”,C:/>mysql-hlocalhost-uroot-p......
  • nvim-dap C++ cpptools
    https://github.com/microsoft/vscode-cpptoolsgccgdblocaldap=require("dap")dap.adapters.cppdbg={id='cppdbg',type='executable',command='c:\\gnu\\tool\\cpptools\\extension\\debugAdapters\......
  • 删除无效的括号(广度优先搜索、字符串)、计算右侧小于当前元素的个数(树状数组、线段
    删除无效的括号(广度优先搜索、字符串)给你一个由若干括号和字母组成的字符串s,删除最小数量的无效括号,使得输入的字符串有效。返回所有可能的结果。答案可以按任意顺序返回。示例1:输入:s="()())()"输出:["(())()","()()()"]示例2:输入:s="(a)())()"输出:["(a())()","(......
  • ASEMI代理ADA4940-1ACPZ-R7原装ADI车规级ADA4940-1ACPZ-R7
    编辑:llASEMI代理ADA4940-1ACPZ-R7原装ADI车规级ADA4940-1ACPZ-R7型号:ADA4940-1ACPZ-R7品牌:ADI/亚德诺封装:LFCSP-16批号:2023+引脚数量:16安装类型:表面贴装型ADA4940-1ACPZ-R7汽车芯片ADA4940-1ACPZ-R7特征小信号带宽:260MHz超低功率1.25mA极低谐波失真−122dBTHD,50kHz时1MHz时的......
  • on duplicate key update的用法
    1.基础用法test表有如下数据执行如下sql会报主键冲突INSERTINTOtest(id,NAME,age)VALUES(1,'张三',13)增加onduplicatekeyupdate后执行成功INSERTINTOtest(id,NAME,age)VALUES(1,'张三',13) ONDUPLICATEKEYUPDATEid=1, NAME='张三', ag......
  • crontab 命令
    一. 计划任务用途:  按照设置的时间间隔,为用户反复执行某一项固定的系统任务软件包:cronie、crontabs系统服务:crond日志文件:/var/log/cronu 使用 crontab 命令– 编辑:crontab -e [-u 用户名]– 查看:crontab -l [-u 用户名]– 清除:crontab -r [-u 用户名]u 计划任......
  • 用CTGAN生成真实世界的表格数据
    随着CLIP和稳定模型的快速发展,图像生成领域中GAN已经不常见了,但是在表格数据中GAN还是可以看到它的身影。现实世界的复杂性与许多方面相关(例如,缺失数据、不平衡数据、噪声数据),但最常见的一个问题是包含异构(或“混合”)数据,即包含数字和分类特征的数据。由于每种特征类型都可......
  • C-文件读写
    文件读写#include<stdio.h>读取文件FILE*fopen(char*filename,char*mode);参数说明:打开方式说明"r"以只读方式打开文件.文件必须存在,否则打开失败."w"以写入方式打开文件.如果文件不存在,那么创建一个新文件;如果文件存在,那么清空文件内容.......