如何远程连接linux sql lite

如何远程连接linux sql lite,第1张

Sqlite远程连接数据

1、连接本地数据库

QSqlDatabase db =QSqlDatabase::addDatabase("QSQLITE")

db.setDatabaseName("personnel.db")

db.setUserName("PersionSql")//数据库用户名和密码

db.setPassword("123456")

if (!db.open()){

QMessageBox::warning(0,QObject::tr("Database Error"),

db.lastError().text())

return false

}

打开当前目录下的数据库,如果没有则创建一个名为personnel.db”的数据库。

2、sqlite连接本地共享数据库芦丛哗

QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE ")

db.setHostName("localhost")//设置你本地服务器的IP

db.setDatabaseName("/SQLLiteDB/personnel.db")// SQLLiteDB共享目录下的数据库名

db.setUserName("persionSql")//数据库用户名和密码

db.setPassword("123456")

if(!db.open())

qDebug() <<"Failed to connect to QSQLITE"

else

qDebug() <<"success!"

打开你本机SQLLiteDB目录下共享的数据库,如果没有则打开失败。

如果你的共享目录下有该数据库则打开成功。

3、sqlite连接网络共享数据库

QSqlDatabase db =QSqlDatabase::addDatabase("QSQLITE")

db.setHostName("192.168.1.160")//设置你网络服务器的IP

db.setDatabaseName("/share/personnel.db")//share共享目录下的数据库名

db.setUserName("PersionSql")//数据库用户名和密码

db.setPassword("123456")

if (!db.open())

qDebug() <<"Failed to connect to QSQLITE"

else

qDebug() <<"success!"

打开你网络共享目录share下共享的数据库,如果没有则打开失败。

如果你的共享目录下有该数据库则打开成功陪行。

说明:访问网络远程数据库则必须要关闭本机和远程PC机上的防火墙,访问的远程数据库的路径不能为中文路径,设置的共享目录必须要有可读可写权限。郑激

可以使用QT自带滑液的数据库完成 *** 作,以下是参考代码:

QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE")   //添加数据库

db.setDatabaseName("note.db")    //创建一个note.db的文件存储数据

db.open()  //开启数据库

query = QSqlQuery(db) //获得访问数据库的query

query.exec(XXX)  //执行指令(XXX为SQL指令)

db.close()  //关闭数据库

一般而言会将db变量作为全局变量或者数据成员,毕喊当需要访问的时候就获取一个query就可以了。

要实现所提到的功能,要好好看看QString、QStringList,这两玩意主手让野要是临时存放数据、分割数据等作用,另外,要看QFile、QDir、QFileInfo、QTextStream,这四个主要用来读取文本数据。看看QVector或者QList等来存放读出来的数据。

另外,要实现这玩意,SQL的语句不要求精通,但是基本的Create、Insert、Select、Delete等 *** 作要准确无误。否则出错了QT是看不出来的。QT不会检测SQL的准确性的。

作为程序员或者数据库维护人员,可能大家经常 要做的事情就是备份数据库,并且为了安全起见最好是异地备份,但是如果要经常备份,然后把他们传到本地,是一件非常费时费力的事情,尤其像我这种比较懒的程序员,甚至有时候会忘记备份',所以比较好的解决办法就是让SQL Server自动备份,同时自动下载。同时由于SQL Server自动备份的bak文件通常都比较大,如果直接传到本地,要花比较久的时间,因此为了提高效率最好在备份后先压缩,并且为了安全起见,下载下来的文件还要加密。那么有没有可能让SQL自动备份,加密压缩,自动下载的所有流程都自动完成呢,答案是肯定的。下面我就将我使用到的工具、方法和代码共享出来,供大家参考。

第一个步骤就是让SQL Server自动备份数据库,这方面的文章比较多,最常用的是使用SQL Server的代理,定时执行一个“作业”。基本步骤就是先编写一个执行备份的存储过程,然后在SQL Server的企业管理器中,选择“管理——>SQL Server代理——>新建作业”,然后在新建作业步骤中类型选择Transact-SQL,再在命令中输入执行备份的存储过程(或者开始不建立存储过程,在这里直接输入备份的SQL代码也可)就可以了。

第二个步骤就是加密并压缩备份的数据库文件。我自己试了一下,一个200M的SQL 备份文件,用WinRAR压缩之后的大小是18M左右,所以为了快速传到本地,压缩是非常有必要的。为了在备份后,马上进行压缩,最方便的就是直接使用SQL命令执行压缩,由于WinRAR可以通过命令行调用,所以我困宴们可以使用SQL Server中的xp_cmdshell命令来执行压缩指令,同时通过其中的一些参数指定压缩密铅尺桐码,这样加密压缩就实现了。(为了实现此功能,服务器上要安装WinRAR)

最后还需要定时自动下载。要实现这个功能可以使用windows的任务计划,再结合系统自带的ftp命令即可实现。

下面给出实现此功能的完整步骤和代码:

服务器端:

1、 在要备份的数据库中建立槐坦存储过程:

CREATE PROCEDURE [do_backup] AS

declare

@prefix nvarchar(100),

@datefile nvarchar(100),

@bakfile nvarchar(100),

@rarfile nvarchar(100),

@delcmd nvarchar(100),

@rarcmd nvarchar(150)

set @prefix='E:\Bak\databasename\' --备份文件夹

set @datefile='fzjs'+cast(Year(GetDate()) as varchar(4))+cast(Month(GetDate()) as varchar(2))+cast(Day(GetDate()) as varchar(2))

set @bakfile=@prefix+@datefile+'.bak'

set @rarfile=@prefix+'RAR\'+@datefile+'.rar'

BACKUP DataBASE databasename2 TO DISK = @bakfile WITH INIT , NOUNLOAD , NAME = N'databasename数据备份', NOSKIP , STATS = 10, NOFORMAT

set @delcmd = 'del '+@prefix+ 'RAR\*.rar' --先清空RAR备份文件夹

set @rarcmd ='C:\Progra~1\WinRAR\WinRAR.exe a -pyourpw '+@rarfile+' '+@bakfile --将yourpw改为您要设置的密码,进行加密压缩

exec master..xp_cmdshell @delcmd

exec master..xp_cmdshell @rarcmd

GO

2、 数据库管理器——管理——>作业——>新建作业——设置作业的执行程序和运行时间,根据自己的备份需要进行设置,然后启用作业。

3、 在服务器的FTP中将数据压缩备份的目录设置好。

4、 在本地建立一个ftp命令的文本文件:c:\ftp.txt

文件中输入以下内容(替换成您自己的内容并去掉[]):

open [您的服务器IP地址]

[数据库备份压缩目录FTP登录用户名]

[数据库备份压缩目录FTP登录密码]

verbose off

lcd [本地保存路径]

prompt off

mget *.rar

bye

5、 然后建立一个autoftp.bat的批处理文件,执行ftp命令。

ftp -s:c:\ftp.txt

6、 在控件面板的任务计划管理中,添加批处理文件的定时自动运行时间,并注意要与服务器数据库备份时间相衔接。

这样,调试成功以后,整个过程就大功告成了,以后就不用去经常去做这些繁琐的事情啦!

如果大家在使用的过程中,有什么问题,或者更好的一些方法,欢迎与本人交流。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12254077.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存