sql >> Database teknologi >  >> RDS >> Access

Dataadgang fra Raspberry Pi

Hvis du skal have adgang til en database fra Raspberry Pi, kan du enten bruge en, der er tilgængelig for denne platform (for eksempel MySQL / MariaDB, PostgreSQL og MongoDB) eller få adgang til en eksternt. Easysoft ODBC-drivere gør det muligt for dine Pi-applikationer at oprette forbindelse til både lokale og eksterne databaser. For eksempel kan du bruge SQL Server ODBC-driveren til at forbinde Python på Pi til SQL Server på Windows (eller i Azure Cloud eller på Linux, hvis du bruger disse platforme). Trinene til dette er som følger:

  1. Download SQL Server ODBC-driveren til Raspberry Pi. (Registrering påkrævet.)
  2. Installer og licenser SQL Server ODBC-driveren på Raspberry Pi-maskinen.

    Se ODBC-driverdokumentationen for installationsinstruktioner.

    Bemærk Du skal have unixODBC Driver Manager installeret på din maskine. Easysoft-distributionen inkluderer en version af unixODBC Driver Manager, som Easysoft SQL Server ODBC-driveren er blevet testet med. Easysoft-driveropsætningsprogrammet giver dig mulighed for at installere unixODBC.

  3. Opret en ODBC-datakilde i /etc/odbc.ini, der forbinder til den SQL Server-database, du vil have adgang til fra Python. For eksempel:
    [SQLSERVER_SAMPLE]
    Driver          = Easysoft ODBC-SQL Server
    Server          = my_machine\SQLEXPRESS
    User            = my_domain\my_user
    Password        = my_password
    # If the database you want to connect to is the default
    # for the SQL Server login, omit this attribute
    Database        = Northwind
    
  4. Brug isql til at teste den nye datakilde. For eksempel:
    cd /usr/local/easysoft/unixODBC/bin
    ./isql.sh -v SQLSERVER_SAMPLE
    

    Ved prompten skal du skrive "hjælp" for at få vist en liste over tabeller. For at afslutte skal du trykke på retur i en tom promptlinje.

    Hvis du ikke kan oprette forbindelse, skal du se denne artikel og SQL Server ODBC Driver Knowledge Base for at få hjælp.

  5. Installer nu pyodbc, ODBC-grænsefladen, der giver dig adgang til en ODBC-database fra Python:
    sudo apt-get install python-pyodbc
  6. For at teste installationen skal du hente nogle SQL Server-data fra en Python-shell:
    pi@raspberrypi:~ $ python
    Python 2.7.13 (default, Jan 19 2017, 14:48:08)
    [GCC 6.3.0 20170124] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import pyodbc
    >>> cnxn = pyodbc.connect("DSN=SQLSERVER_SAMPLE")
    >>> cursor = cnxn.cursor()
    >>> cursor.tables()
    <pyodbc.Cursor object at 0x76a168a8>
    >>> rows = cursor.fetchall()
    >>> for row in rows:
    ...      print row.table_name
    ...
    sysmatrixageforget
    GEMS_DEPENDENTS_STAGING2
    GEMS_DEPENDENTS_STAGING2
    MSreplication_options
    oinsert
    spt_fallback_db
    spt_fallback_dev
    spt_fallback_usg
    spt_monitor
    >>>
    

Alternativt, hvis du foretrækker Perl:

pi@raspberrypi:~ $ sudo apt-get install libdbi-perl
	pi@raspberrypi:~ $ wget http://search.cpan.org/CPAN/authors/id/M/MJ/MJEVANS/DBD-ODBC-1.56.tar.gz
pi@raspberrypi:~ $ tar -xvf DBD-ODBC-1.56.tar.gz
pi@raspberrypi:~ $ cd DBD-ODBC-1.56
pi@raspberrypi:~ $ export DBI_DSN='dbi:ODBC:SQLSERVER_SAMPLE'
pi@raspberrypi:~ $ DBI_USER='mydb_user'
pi@raspberrypi:~ $ DBI_PASS='mydb_password'
pi@raspberrypi:~ $ perl Makefile.PL
pi@raspberrypi:~ $ make
pi@raspberrypi:~ $ make test
pi@raspberrypi:~ $ sudo make install
pi@raspberrypi:~ $ vi perl-test.pl
#!/usr/bin/perl -w

use strict;

use DBI;

my $dbh = DBI->connect( "dbi:ODBC:SQLSERVER_SAMPLE", "mydb_user", "mydb_password" , {
    RaiseError => 1
} );

my $sth = $dbh->table_info();

while ( my ( $qualifier, $owner, $name, $type, $remarks ) = 
        $sth->fetchrow_array() ) {

    foreach ($qualifier, $owner, $name, $type, $remarks) {
        $_ = '' unless defined $_;
    }
    print "$qualifier, $owner, $name, $type, $remarks \n";

}

exit;
pi@raspberrypi:~ $ perl ./perl-test.pl
master, dbo, sysmatrixageforget, SYSTEM TABLE,
master, dbo,  GEMS_DEPENDENTS_STAGING2, TABLE,
master, dbo, DBD_ODBC_LOB_TEST, TABLE,

Easysoft understøtter i øjeblikket ARMv71 Raspberry Pi-platformen, som er 32-bit. Hvis du har brug for en af ​​vores ODBC-drivere til en 64-bit Raspberry PI (i skrivende stund betyder dette en Raspberry Pi 3 Model B, der kører SUSE Linux), så lad os det vide ved at kontakte vores supportteam, og vi vil forsøge at bygge en 64-bit driver til dig. Et eksempel på fordel ved at køre vores drivere på en 64-bit Raspberry Pi-platform er den ydelsesforøgelse, som denne arkitektur medfører, når du bruger kryptering. (64-bit heltal gør det muligt for CPU'er at håndtere krypteringsopgaver med færre kommandoer.) SQL Server ODBC-driveren gør det muligt for dig at kryptere netværksforbindelsen mellem din Raspberry Pi og SQL Server, hvilket beskytter data i transit.

I øjeblikket giver Easysoft-drivere dig adgang til følgende datalagre fra Raspberry Pi:

  • SQL-server
  • Oracle
  • Salesforce
  • Adgang
  • DB2
  • MySQL
  • Apache Derby
  • Enhver ODBC-driver

  1. Kan ikke indsætte eksplicit værdi for identitetskolonnen i tabellen "tabel", når IDENTITY_INSERT er indstillet til FRA

  2. Stripning af HTML-tags i PostgreSQL

  3. Hvor værdi i kolonne, der indeholder kommaseparerede værdier

  4. Udvidelsen mysqli mangler, phpmyadmin virker ikke