SqlServer数据库报 errorCode 4060, state S0001错误

文章描述了如何配置SQLServer,包括修改sa用户密码,设置服务器角色,启用用户角色映射,以及检查和确保端口1433开放。在遇到与Druid数据源的连接错误时,通过更新Druid和mssql-jdbc的依赖版本解决了不兼容问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于SqlServer数据库的使用,需要进行如下配置

首先以windows身份进入SqlServer

修改sa用户的登录密码

右键选择sa——属性——修改密码

 服务器角色选择

用户角色映射

 

 状态都选择启用

 第二大步,右键选择数据库,选择属性,设置如下

 关闭Microsoft SQL Server Management studio工具

windows+R 打开运行命令窗口,输入services.msc,打开服务列表

 重启sqlserver服务

再次打开Microsoft SQL Server Management studio工具,以SQL Server身份登录,输入我们刚才设定的密码

 

第三大步:查看SQLServer数据库的端口1433是否启用

打开SQLServer 2022配置管理器 

右键TCP/IP——选择属性 

排查完整以上这些,如果还是报错如下

2023-06-22 11:56:20.396 ERROR 19200 --- [reate-323031574] com.alibaba.druid.pool.DruidDataSource   : create connection SQLException, url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=web_database?entype=false;trustServerCertificate=true;integratedSecurity=false;, errorCode 4060, state S0001

查看SQLServer与druid数据源的驱动不兼容,改成如下即可

<!-- 引入druid依赖 -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.2.5</version>
</dependency>

<!-- 引入sqlserver依赖 -->
<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>9.2.1.jre8</version>
</dependency>

再次访问接口,运行成功

 

在C#中使用Entity Framework(EF)模型连接SQL Server数据库,并实时监听数据库连接状态并在前端界面显示,可以按照以下步骤进行: ### 1. 安装必要的NuGet包 首先,确保你的项目中安装了以下NuGet包: - `EntityFramework` - `System.Data.SqlClient` ### 2. 配置EF模型 在你的项目中创建一个EF模型,可以通过Code First或Database First的方式进行配置。以下是一个简单的Code First示例: ```csharp using System.Data.Entity; public class MyDbContext : DbContext { public MyDbContext() : base("name=MyDbConnectionString") { } public DbSet<User> Users { get; set; } } public class User { public int Id { get; set; } public string Name { get; set; } } ``` 在`Web.config`或`App.config`文件中配置连接字符串: ```xml <connectionStrings> <add name="MyDbConnectionString" connectionString="Server=your_server;Database=your_database;User Id=your_user;Password=your_password;" providerName="System.Data.SqlClient" /> </connectionStrings> ``` ### 3. 实时监听数据库连接状态 为了实时监听数据库连接状态,可以使用`SqlConnection`类的事件。以下是一个示例: ```csharp using System; using System.Data.SqlClient; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; public class ConnectionMonitor { private readonly string _connectionString; private SqlConnection _connection; private Timer _timer; public ConnectionMonitor(string connectionString) { _connectionString = connectionString; } public void Start() { _connection = new SqlConnection(_connectionString); _connection.StateChange += Connection_StateChange; _connection.Open(); _timer = new Timer(CheckConnection, null, 0, 5000); } private void Connection_StateChange(object sender, StateChangeEventArgs e) { // 在这里处理连接状态变化事件 Console.WriteLine($"Connection state changed from {e.OriginalState} to {e.CurrentState}"); } private void CheckConnection(object state) { try { if (_connection.State == System.Data.ConnectionState.Closed) { _connection.Open(); } } catch (Exception ex) { Console.WriteLine($"Error checking connection: {ex.Message}"); } } public void Stop() { _connection.StateChange -= Connection_StateChange; _connection.Close(); _timer.Dispose(); } } ``` ### 4. 在前端界面显示连接状态 在前端界面中,可以使用一个简单的Windows Forms应用程序来显示连接状态。以下是一个简单的示例: ```csharp public partial class Form1 : Form { private ConnectionMonitor _monitor; public Form1() { InitializeComponent(); string connectionString = "Server=your_server;Database=your_database;User Id=your_user;Password=your_password;"; _monitor = new ConnectionMonitor(connectionString); _monitor.Start(); } protected override void OnFormClosing(FormClosingEventArgs e) { _monitor.Stop(); base.OnFormClosing(e); } } ``` 在`Form1`的设计器中添加一个`Label`控件来显示连接状态。 ### 5. 更新前端界面 在`Connection_StateChange`事件中更新前端界面的`Label`控件: ```csharp private void Connection_StateChange(object sender, StateChangeEventArgs e) { // 在这里更新前端界面的Label控件 this.Invoke(new Action(() => { label1.Text = $"Connection state: {e.CurrentState}"; })); } ``` 通过以上步骤,你可以使用C#EF模型连接SQL Server数据库,并实时监听数据库连接状态并在前端界面显示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值