前言:
此前接触过一段时间关于SqlServer的信息系统运维项目。
SqlServer最令人印象就是其 ManagementStudio 数据库管理查询界面。
最近有空,弄点事情来折腾一下。安装SqlServerExpress,这个版本你可以免费用于一些小项目。(只是一时手痒想弄一下,估计后面也派不上用场,感觉微软的技术 关注和使用的人也不少)
安装测试也费了一些功夫,网上这方面的资料也很多,只是很少涉及完整的代码连接,在此记录下来。
先说结果,这个测试环境下测试通过
WindowsServer2008R2x64 + SQLEXPR_x64_2008_CHS.exe + SQLManagementStudio_x86_CHS.exe
(文章末段有安装包链接)
SqlServer2008资源占用较低,但毕境是版本太旧。随后又在这个测试(虚拟)环境下 安装通过。
win10_x64 + sqlserver2017express + ssms 安装成功。
这个只需官网下载个 SQLServerXXX-SSEI-Expr 安装器,直接双击安装,等待结束后,再按提示下载SMSS安装。
【安装进行】
1, Windows环境可以是 win7_64b 或 winServer2008x64,虚拟机环境也行。
2,安装 net framework 3.5 ( 高版本数据库 需要更高版 framework )
3,安装 SQLEXPR_x64_CHS.exe ,都用默认项。模式用 windows 模式,用户帐号是 当前帐号,所有角色权限 都用这个。
4,安装 SQLManagementStudio
5,打开 SQLServer 配置管理 器,
SqlServer 协议项,开启 TCP 和 Named 选项,
SqlServer 服务项,重启 Sql Server。( Aent 和 Browser 可以不启动 )
6,打开 SQLManagementStudio (SMSS,连接查询界面)
出现 数据库 连接对话框。
在 服务器名称 写入:(如果没有出现 服务名 的话)
"你机器名\SQLEXPRESS"
或 .\SQLEXPRESS 或 127.0.0.1\SQLEXPRESS
( 这个 SQLEXPRESS 就是安装 数据库时 默认的 实列名,在 安装时 可改。)
7,使用 Windows认证 方式,登入 Management Studio。
在这一步,必需使用 Management Studio 能成功登入 ,否则,你要检测前面什么地方有问题,必要时 用 gho 或 恢复 vmx 还原一个较纯净系统后 ,按上述步骤重新安装。
接下来,使用 编程代码 联接
Express 版本其中一个坑 就是,开放端口不是 1433 。。。
后面会提到怎么 找到 Express 的开放端口。
【连接过程】
1,前面已经讲了,在 window 授权模式下 登入 Management Studio 。
(其实 我是 经历了很多麻烦问题后,才能登进去的,前面 的文字 只是 看起来 简单而以。。。)
现在 Management Studio 界面的 左边是一个 树型控件 。
2,展开 树型控件,找到 下面 的 “数据库节”点,右击,新建一个数据库 ,名为 mydb ( 或其它你期待的 )
新建一个 查询Sql 页面。键入如下 代码,并执行 ,为 新库 授权 连接用户和 操作权限 。(相关参数自行修改)
--------------------------------------------------------
CREATE login mydb_user WITH password = '123456', default_database= mydb
USE mydb
CREATE USER mydb_user FOR login mydb_user WITH default_schema = dbo
USE mydb
EXEC sp_addrolemember 'db_owner', 'mydb_user'
--------------------------------------------------------
3,右键点击:树型控件 第一个 节点 (就是那个写着类似 {pc_machine_name}\SQLEXPRESS 的节点 )
选“属性” ,再选“安全性”,接着,在窗口右边区域,找到 登录模式,把登录模式设置为 混合模式。
4,关闭 Management Studio , 重新打开。
使用 Sql Server 用户模式 登录,用户名是 mydb_user ,密码就是 上面设置那个。
5,确保能用 mydb_user 连接进去。因为,用编程代码连接 使用的就是 这个 mydb_user 帐号。
6,重启 SQL Server。或者 重启一下 系统。
所有东西都好了,可以用代码进行连接了。
我一开始连接时,联不上,有错误提示。找了很方法。
最后 netstat -a 发现,系统根本没有开启 1433 端口 。。。
既然 SMSS 能连上,那它应该是有开端口的,它开了什么端口 ,怎么找 ?
回想起 Linux 下的 ps grep 操作,那么 win 下也应该有类似命令才对。
OK,找一下,,, 搜一下就找到。
还是 netstat ,打开 终端 控制台 ( cmd, console ) ,键入 这条 指令。
netstat -ano | findstr /i "2568"
这里的 2568 是 Sql Server 进程 ID,通过 "配置管理" -> "SQL 服务" -> 属性列表, 可以查看 数据库 进程ID 。
这时,我机器找到的端口是 49162 。
( 估计是 MS 以 SQLExpress 作为实例名,bind 一个端口,再新建一个实例 ,端口 就变成另一个 )
7,在用代码连接前,如有必要或遇到其它问题,最好还是关闭一下 windows 防火墙。
C#连接代码
//String constr = "server={机器IP},49826;database=myoa;User ID=mydb_user;Password=123456;";
string constr = @"server={机器IP},49162\SQLEXPRESS;uid=mydb_user;pwd=123456;database=mydb_user";//复制
SqlConnection con = new SqlConnection();
con.ConnectionString = constr;
con.Open();
Java连接
String url = "jdbc:sqlserver://IP:49162;DatabaseName=mydb_user";
String usr = "mydb_user";
String pwd = "123456";
String drv = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
Class.forName(drv);
DriverManager.getConnection(url, usr, pwd);
SqlServerExpress2008 and Management Studio donwload
https://download.csdn.net/download/RoadToTheExpert/12668139