linux访问sqlserver
① linux系统下 php跨平台连接sqlserver数据库获取数据
你可以在你php的server里面尝试用shell远程连接你的SQLserver。一般这些是两个问题,要么是你远程SQLserver没有开端口,所有不能访问你SQLserver,或者是你mysql没有开启远程连接。
② Linux系统下,node.js怎么远程连接SqlServer
用SQL直接连 还是在程序里连
SQL直接连:
打开企业管理器---右键SQL Server组---新建SQL SERVER 组差肢
弹出窗口 点“下一步” 在可用服务器内输入 SQLSERVER的IP 局域的话输入主机名也可以
然后点添加---下含慎一步--选择第二项 系统管理员给我分配的……下一步 输入SQLSERVER用户名和密码
--下一步 ---完成
如果SQL允许远程登谈庆敬陆的话 这样就连上了
密码和用户名没错的话连不上的原因话说明SQLSERVER服务器不允许远程连接 或者不可用
③ linux 下访问sql server
你应该牢记MySQL服务器启动过程的两个目标:
你想让服务器以某个非root用户运行。一般地,你想限制任何运行进程的能力,除非确实需要root权限,而MySQL不需要。
你想让服务器始终以同一个用户运行,此时用一个用户而其他时候以另一个不同的用户运行服务器是很不方便的,拦搜姿这造成了为文件和目录以具有不同属主的数据目录下被创建,并可能导致服务器不能访问数据库或表,这看你以哪个用户运行。统一用同一个用户运行服务器是你避免这个问题。
要一个普通的非特权用户运行服务器,按照下列步骤:
选择一个用于运行服务器的用户,mysqld可以用任何用户运行。但在概念上较清晰的是为MySQL操作创建一个单独的用户。你也可以特别为MySQL选择一个用户组。本文使用mysqladm和mysqlgrp分别作为用户名和用户组名。
如果你已在自己的账号下安装好了MySQL且没有系统上的特殊管理权限,你将可能在你自己的用户ID下运行服务器。在这种情况下,用你自己的登录名和用户组代替mysqladm和mysqlgrp。
如果你在RedHat Linux上用rpm文件安装MySQL,该安装将自动创建一个名为mysql的账号,用该账号代替mysqladm。
如果必要,用系统通常的创建用户的过程创建服务器账号,你需要用root做它。
如果服务器在运行,停止它。
修改数据目录和任何子目录和文件的属主,这样使得mysqladm用户拥有它们。例如,如果数据目录是/usr/local/var,你可以如下设置mysqladm的属主(你需要以root运行这些命令):
#cd /usr/local/var
#chown -R mysqladm.mysqlgrp
修改数据目录和任何子目录和文件的权限,使得它们只能由mysqladm用户访问。如果数据目录是/usr/local/var,你可以设置由mysqladm拥有的任何东西:
# cd /usr/local/var
# chmod -R go-rwx
当你设置数据目录及其内容的属主和模式时,注意符号连接。你需要顺着它们并改变它们指向的文件或目录的属主和模式。如果连接文件的目录位于不属于你的地方,会有些麻烦,你可能需要root身份。
在你完成了上述过程后,你应该确保总是在以mysqladm或root登录时启动服务器,在后者,确定指定--user=mysqladm选项,使服务器能将其用户ID切换到mysqladm(同时也适用于系统启动过程)。
--user选项在MySQL 3.22中引入,如果你有老版本,你可以使用su命令告诉系统在以root运行时在特定的用户下运行服务器。
二、启动服务器的方法
在我们确定了用于运行服务器的账号后,你可以选择如何安排启动服务器。你可以从命令行手动或在系统引导过程中自动地运行它。对于启动服务器由三种主要方法:
直接调用mysqld。
这可能是最不常用的方法,建议不要多使用,因此本文不详细介绍。
调用safe_mysqld脚本。
safe_mysqld试图确定服务器程序和数据目录的位置。然后用反映这些值的选项调用服务器。safe_mysqld将标准出错设备从服务器重定位到数据目录下的一个出错文件,使得有它的一条记录。在启动服务器后,safe_mysqld也监视漏谈它简绝并且如果它死掉则重启它。safe_mysqld常用于BSD风格的Unix系统。
如果你以root或在系统引导期间启动sqfe_mysqld,出错日志由root拥有,这可能在你以后试图用一个非特权用户调用safe_mysqld时将导致“permission denied”(权限拒绝)错误,删除出错日志再试一下。
调用mysql.server脚本。
这个脚本通过有意用于System V的启动和停止系统上的safe_mysqld.mysql.server来启动服务器,该系统包含几个包含在机器进入或退出一个给定运行级别时被点用的脚本目录。它可以用一个start或stop参数点用以表明你是想启动还是想停止服务器。
safe_mysqld脚本安装在MySQL安装目录的bin目录下,或可在MySQL源代码分发的scripts目录下找到。mysql.server脚本安装在MySQL安装目录下的share/mysqld目录下或可以在MySQL源代码分发的support_files目录下找到。如果你想使用它们,你需要将它们拷贝到适当的目录下。
对BSD风格的系统(FreeBSD,OpenBSD等),通常在/etc目录下有几个文件在引导时初始化服务,这些文件通常有以“rc”开头的名字,且它有可能由一个名为“rc.local”的文件(或类似的东西),特意用于启动本地安装的服务。在这样的系统上,你可能将类似于下列的行加入rc.local文件中以启动服务器(如果safe_mysqld的目录在你的系统上不同,修改它即可):
if [ -x /usr/local/bin/safe_mysqld ]; then
/usr/local/bin/safe_mysqld &
fi
对于对于System V风格的系统,你可以通过将mysql.server放在/etc下适当的启动目录下来安装它。如果你运行Linux并从一个RPM文件安装MySQL,这些已经为你做好了,否则将脚本安装在主启动目录下,并将指向它的连接放在适当的运行级别目录下。你也可以使脚本只能由root启动。
启动文件的目录布局各系统不同,所以你需要检查一下看看你的系统如何组织它们。例如在Linux PPC上,目录是/etc/rc.d和/etc/rc.d/rc3.d,这样你可以这样安装脚本:
#cp mysql.server /etc/rc.d/init.d
#cd /etc/init.d
#chmod 500 mysql.server
#cd /etc/rc.d/rc3.d
#ln -s ../init.d/mysql.server S99mysql
在solaris上,主脚本目录是/etc/init.d,并且运行级别目录是/etc/rd2.d,所以命令看上去像这样:
#cp mysql.server /etc/rc.d/init.d
#cd /etc/init.d
#chmod 500 mysql.server
#cd /etc/rc2.d
#ln -s ../init.d/mysql.server S99mysql
在系统启动时,S99mysql脚本将自动用一个start参数调用。如果你有chkconfig命令(Linux上有),你可以由它帮助安装mysql.server脚本而不是象上面那样手工运行上述命令。
2.1 指定启动选项
如果你想在服务器启动时指定额外的启动选项,你可有两种方法。你可以修改你使用的启动脚本(safe_mysqld或mysql.server)并直接在调用服务器的行上指定选项,或在一个选项文件中指定选项。建议你如果可能在一个全局选项文件中指定选项,它通常位于/etc/my.cnf(Unix)或c:\\my.cnf(Windows)。
某些种类的信息无法以服务器选项指定。对于这些你可能需要修改safe_mysqld。例如,如果你的服务器不能正确选择本地时区而以GMT返回时间值,你可以设置TZ环境变量给它一个指示。如果你用safe_mysqld或mysql.server启动服务器,你可以将一个时区设置加到safe_mysqld。找到启动服务器的行并在该行前加入下列命令:
TZ=US/Central
export TZ
上面命令的语法是Solaris的,对于其他系统语法可能不同,请查阅相关手册。如果你确实修改了你的启动脚本,要记住下次你安装MySQL时(如升级到新版本),你的修改将失去,除非你首先在别处复制了启动脚本。在安装了新版本后,比较新旧版本的脚本,看看你需要重建什么改变。
2.2 在启动时检查你的表
除了安排你的服务器在系统引导时启动,你可能要安装myisamchk和isamchk脚本,以在服务器启动前检查你的表。你可能在一个崩溃后重启,有可能表已经损害,在启动前检查它是一个发现问题的好方法。
三、停止服务器
要手工启动服务器,使用mysqladmin:
%mysqladmin shutdown
要自动停止服务器,你不需做特别的事情。BSD系统一般通过向进程发一个TERM信号停止服务,它们或者正确应答它或被粗鲁地杀死。mysqld在它收到这个信号时以终止作为应答。对于用mysql.server启动服务器的System V风格的系统,停止进程将用一个stop参数调用该脚本,告诉服务器终止,当然假定你已安装了mysql.server。
④ 用linux怎么进入SqlServer2005
这是我在网上帮你找到的资料,你看一下!希望能成功!
在linux下连接MSSQL是一件很痛苦的事,因为微软同志没有提供任何接口给开发人员,大约他们认为要用MSSQL的,只可能是windows的操作系统。还好,MSSQL是从Sybase衍生出来的,有一些哥们做了一些Sybase的Linux下的连接库,这些连接库同时也能支持MSSQL,FreeTDS就是这样的一个东东。
这篇文章的受用读者,我想是那些希望在linux或unix下编写C或C++程序来连接MSSQl2000的兄弟们,因为我就是这样的。同时,那些写PHP的哥们也可以参考一下,当然如果你是用PHP的,你恐怕还要知道APACHE以及PHP脚本的安装,这里就不多说了。
废话少说,进入正题。
一、 相关软件
freetds 来源:
官方网站:http://www.freetds.org
这个软件能够用Linux和Unix连接MS SQLServer和Sybase数据库。
二、安装与配置
2.1编译安装freetds:
$ tar zxvf freetds-stable.tgz(解压)
在这里本人的安装出了点问题,解压的时候只能解压租猛散一部分,没有办法全部解压,比较郁闷,本人的系统是Fedora 8,可能是比较老了一点,将freetds-stable.tgz传给我朋友后,却告知可以全部解压,没办法,本人懒得重装系统了,所以在windows把它解压后,重新传到linux上,呵呵。
$ ./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --enable-msdblib
这步骤可知迅能要修改一下configure的文件权限,干脆点就用chmod 777 *,呵呵,省事了!
--with-tdsver=8.0 --enable-msdblib这句话是支持ms sql server2000
$ make
$ make install 这步骤要有root权限
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local、freetds/lib/
这步骤就是添加环境变量了,不弊氏过这样添加不是永久起作用当下线之后,在执行的时候还要进行添加,也可以修改配置文件进行,网上这方面的方法很多就不介绍了。
安装后测试是否成功:
tsql -H 0.0.0.0 -p 0 -U test-P test
H 后添加sql server的ip
p 后添加sql server的端口
U 后添加用户名称
P 后添加用户密码
另外我们也可以通过代码进行访问:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include </usr/local/freetds/include/sybfront.h>
#include </usr/local/freetds/include/sybdb.h>
int main(void)
{
char szUsername[32] = "自己填写";
char szPassword[32] = "自己填写";
char szDBName[32] = "自己填写";
char szServer[32] = "自己填写";形式如10.10.11.12:1111
//初始化db-library
dbinit();
//连接数据库
LOGINREC *loginrec = dblogin();
DBSETLUSER(loginrec, szUsername);
DBSETLPWD(loginrec, szPassword);
DBPROCESS *dbprocess = dbopen(loginrec, szServer);
if(dbprocess == FAIL)
{
printf("ASB>> Conect MS SQL SERVER fail \n");
return 0;
}
printf("ASB>> ConnectEMS conect MS SQL SERVER success\n");
if(dbuse(dbprocess, szDBName) == FAIL)
{
printf("ASB>> Open database name fail\n");
}
else
{
printf("ASB>> Open database name success\n");
}
//查询数据库
/*dbcmd(dbprocess, "select ID,BeginTime,Description from Alarms");
if(dbsqlexec(dbprocess) == FAIL)
{
printf("ASB>> Query Alarms table error\n");
}
DBINT result_code;
char szID[1024];
char szBeginTime[1024];
char szDescription[1024];
int rows = 0;
while ((result_code = dbresults(dbprocess)) != NO_MORE_RESULTS){
if (result_code == SUCCEED){
dbbind(dbprocess, 1, CHARBIND, (DBINT)0, (BYTE*)szID);
dbbind(dbprocess, 2, CHARBIND, (DBCHAR)0, (BYTE*)szBeginTime);
dbbind(dbprocess, 3, CHARBIND, (DBCHAR)0, (BYTE*)szDescription);
while (dbnextrow(dbprocess) != NO_MORE_ROWS){
printf("ASB>> ID=%s\n", szID);
printf("ASB>> szAid=%s\n", szBeginTime);
printf("ASB>> szBeginTime=%s\n", szDescription);
}
}
}*/
//关闭数据库连接
dbclose(dbprocess);
return 0;
}
gcc -o testsybase testsybase.c -L/usr/local/freetds/lib -lsybdb
本例中采用的是动态库注意环境变量的添加。
⑤ 如何在linux下通过ODBC连接SQL SERVER数据库
解压文件 tar xvf odbc-sqlserver-1.4.27-linux-x86-glibc.tar
# cd odbc-sqlserver-1.4.27-linux-x86-glibc
# ls
all.tar dsn_template_ssl install_intro licenses_template unixodbc.tar.md5sum
all.tar.md5sum echo install_license license.txt unixodbc.tar.sum
all.tar.sum essqlservertarerr install_linkpaths licshell unixODBC_version.txt
check_root.txt ident install_other_procts OSname.txt uodbc
cmpver install install_paths sqlserver_create_dsn.sh uodbcinstall.txt
config.log install_check_linux INSTALL.txt SQLSERVER_uodbcinstall.txt uodbc_tmp
drv_template install_check_procts install_versioned tables_22189.sql versioned
drv_template_2236 install_check_root intro.txt tee
drv_template_ssl install_check_sunos licclient testlib
dsn_22189 install_check_tools license_request.txt unixODBC
dsn_template install_init licenses.out unixodbc.tar
执行install文件安装ODBC驱动.(用root用户执行)
#./install
这个集合了很多操作.每步都会弹出提示让你进入下一步.
第一步提示Press the return key to read license,按回车即可.
接下来会刷很多license信息.Do you accept the license? (q=quit, yes, no):
如果接受,输入yes.
然后会执行一些检查命令,查看系统是否有基本一些命令工具的安装.按回车进入下一步.
紧接着会检查一些的包是否安装.按回车进入下一步.
此时会提示安装unixODBC需要依赖ODBC driver manager.按RETURN进入下一步.
然后会让你输入一些个人信息.不想输的可以直接回车跳过.
接下来会有一步让选择licence.会有三个OPTION.
[0] Exit
[1] View existing licenses
[2] SQLServer ODBC Driver V1.2
Please choose the proct you would like a license for by entering its item number or enter one of the other options.
可以选择2,但是选择之后发现这个license是收费的..如果想出钱的话就去买.我是直接quit了的.进入下一步.
按要求一步步输入IP地址,端口,用户名,密码,实例.它会自动测试你提供的东西是否正确.当有足够信息去连接数据库后,会提示输入一个DSN名字.即为你的数据库起一个名字,方便后边登陆的时候使用.
这一步完成后,配置基本完成了.
别高兴的太早,还要配置一个环境变量.
将LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/easysoft/sqlserver:/usr/local/easysoft/lib export LD_LIBRARY_PATH写入到用户profile文件中.注意路径要正确.
现在就可以验证啦.
#cd /usr/local/easysoft/unixODBC/bin
#./isql -v dsn_name
可以连接就OK啦.
⑥ LINUX 访问 windows的SQL server,为什么访问不了
请问你访问那个版本的slqserver
访问sql 2000的话可以使用freetds这个odbc驱动
访问sqlserver 2005以上的话,微软出了redhat 企业版的linux下的odbc驱动
可以看这篇文凯握章:http://www.linuxidc.com/Linux/2012-03/56909.htm
另外,可以选择第三方厂商推出的odbc驱动,给你一个地吵备址可以下载:
http://www.easysoft.com/procts/data_access/odbc-sql-server-driver/getting-started.html
另外盯碰庆,如果你是jsp连接的话,装一个连接sqlserver的jdbc驱动就可以了,因为java是跨平台的,和操作系统无关
⑦ linux如何连接远程sqlserver数据库,请不要复制没有可采纳的回答,如果可以实施也行
https://www.microsoft.com/en-us/download/details.aspx?id=28160
http://stackoverflow.com/questions/2545858/c-access-to-sql-server-from-linux
⑧ Linux系统下,node.js怎么远程连接SqlServer
Node.js一直都与mysql , Nosql 配合使用,对于Sql Server却没有很好的支持,一直都是小众技术人员自己编写访问程序。
2012年微软公司官方发行一款Node.js访问Sql Server的驱动程序——msnodesql ,让Node.js访问SQL Server更加简单。
安装
msnodesql 下载地址:下载 自行选择与自己系统相符的版本,点击安装。
msnodesql 官方地址:https://github.com/WindowsAzure/node-sqlserver 含wiki 和 疑问解答 。
在node.js环境下,安装方式和其他驱动安装一样,安装命令:nmp install msnodesql
安装过程中需要注意的两个问题:
1、安装之前必须安装SQL Server Native Client 11.0 32位下载地址:下载 64位下载地址:下载 ,安装此程序不需要SQL server2012支持,经测试,SQL 2005和SQL 2008 可以正常安装使用。
2、安装过程中,如出现错误,检查是否在管理员界面下进行命令安装,这个问题我纠结了好长一段时间。
(右键——以管理员身份运行)
使用
引用驱动
var sql = require('msnodesql');
建立数据库连接
var conn_str = "Driver={SQL Server Native Client 11.0};Server={.};Database={nodetest};uid=sa;PWD=123456;";
不要被 SQL Server Native Client 11.0 吓到,可以完美支持sql 2005和sql 2008 的。
打开数据库
sql.open(conn_str, function (err, conn) {
if (err) {
console.log("Error opening the connection!");
return;
}
//这里是查询语句
});
SQL操作
sql.queryRaw(conn_str,"SELECT * FROM TestTable",
function (err, results)
{
if (err)
{
console.log("Error running query!");
return;
}
for (var i = 0; i < results.rows.length; i++)
{
console.log("0:" + results.rows[i][0]); }
});
注意:此处的写法与wiki文档的写法有些不同,我用过wiki文档的写法(https://github.com/WindowsAzure/node-sqlserver/wiki),有时会出现无法查询数据的情况,w我这种写法是参考源代码中参数的写法,queryRaw包含四个参数:
connectionstring:链接字符串(wiki里面的居然没有用这个,直接用function里面的参数 conn,搞不懂)
query:SQL语句
param:参数(可选的)
callback:回传函数,操作完以后返回的事件
一个完整的例子
var sql=require('msnodesql');
var conn_str="Driver={SQL Server Native Client 11.0};Server={.};Database={nodetest};uid=sa;PWD=123456;";
sql.open(conn_str, function (err, conn) {
if (err) {
console.log('发生错误');
}
sql.queryRaw(conn_str, "select * from users", function (err, results) {
if (err) {
console.log(err);
}
else {
for (var i = 0; i < results.rows.length; i++) {
console.log(results.rows[i][0] + results.rows[i][1]);
}
}
})
})
⑨ 在linux下php可以连接sqlserver数据库吗我用的是thinkphp的框架,望大神指点
sql server数据库是微软的产品, 微软的任何产品都只能依赖windows系统!
除非你的php在linux系统, 而sql server数据库在windows系统下,而且sql server登录用户开启了远程登录连接!
⑩ 如何在linux下用C 或者C++连接sqlserver
ListViewer listViewer;
public static class Language {
public String genre;
public boolean isObjectOriented;
public Language() { }
public Language(String genre, boolean isObjectOriented) {
this.genre = genre;
this.isObjectOriented = isObjectOriented;
}