MySql in Linux benutzen

In dieser Linux-Ecke dürfen nur Themen rund um Linux geschrieben werden.
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Andreas21
Beiträge: 390
Registriert: 30.08.2004 09:05
Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64
Wohnort: Heidelberg

MySql in Linux benutzen

Beitrag von Andreas21 »

Ich komme bei dem code einfach nicht weiter.

Ich habe ihn auf 2 Linux Debian systemen versucht.
Beide ohne erfolg.

Code: Alles auswählen

OpenConsole()

If OpenLibrary(0, "/usr/lib/libmysqlclient.so")
  MYSQL.l = CallCFunction(0, "mysql_init" , #null)
  If MYSQL
    PrintN("mysql_init OK")
    host.s = "localhost"
    user.s = "root"
    pass.s = ""
    db.s = ""
    port.l = 3306
    If CallCFunction(0, "mysql_real_connect", MYSQL, @host, @user, @pass, @db, port, #null, #null)
      PrintN("Connected OK!") 
      CallCFunction(0, "mysql_close", MYSQL)
    Else
      PrintN("Connected Fehler!")
    EndIf  
  Else
    PrintN("Critical Error mysql_init")
  EndIf  
  CloseLibrary(0)
Else
  PrintN("Critical Error libmysqlclient.so nicht gefunden !")
EndIf

CloseConsole()
******************************************
PureBasic 4.40 (Linux - x86)
******************************************

Loading external modules...
Starting compilation...
28 lines processed.
Creating the executable.

- Feel the ..PuRe.. Power -

mysql_init OK
Connected Fehler!
debian:~#
Ich weis das ich das mal hinbekommen hatte.
Mit der libmysqlclient.so.10 hats damals glaub ich funktioniert.
Nur die ist nicht mehr zu finden im Internet.
Es müste aber doch auch mit der libmysqlclient.so.15 und libmysqlclient.so.16 gehn?

Ich kann zwar Init machen aber nicht zum Server verbinden.
Habe es mit localhost versucht und auch mit der IP versucht..
Das Programm wird auf dem linux server ausgeführt wo auch der Mysql-Server liegt.

Ich brauche den zugriff für Mysql da ich peer PB meine Mysql Daten verarbeiten will.
Unter Windows leuft das ja ohne Probleme.

Mit ODCB habe ich bis jetzt auch keinen erfolg gehabt da ich nur Consolen möglichkeit habe.
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
Velz
Beiträge: 182
Registriert: 18.10.2004 22:20

Re: MySql in Linux benutzen

Beitrag von Velz »

Bei mir sieht real_connect etwas anders aus. Allerdings noch in einem Programm mit PB 3.xx

CallCFunction(MySQL_Real_Connect,dbHnd.l, host.s, user.s, password.s, db.s, port.l, 0, 0)

Vieleicht hilft es? Jedoch ich meine gelesen zu haben, dass in 4.4 etwas bei den Funktionsaufrufen anders ist.
Win10/64|Ubuntu-Server|Mint WS // Programmiere Datenbankanwendungen und Tools mit PB-5.x und MySQL-5.x unter Win und Linux
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: MySql in Linux benutzen

Beitrag von ts-soft »

Velz hat geschrieben:Bei mir sieht real_connect etwas anders aus. Allerdings noch in einem Programm mit PB 3.xx

CallCFunction(MySQL_Real_Connect,dbHnd.l, host.s, user.s, password.s, db.s, port.l, 0, 0)

Vieleicht hilft es? Jedoch ich meine gelesen zu haben, dass in 4.4 etwas bei den Funktionsaufrufen anders ist.
Das kann in keinem Fall mehr Funktionieren, da CallCFunction jetzt nur noch Integer nutzt und keinen Anytyp.
Wollte auch nur anmerken, stellt solche Sachen bloß endlich auf Prototypes, die es seit PB4.0 gibt, um!

Gruß
Thomas
Andreas21
Beiträge: 390
Registriert: 30.08.2004 09:05
Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64
Wohnort: Heidelberg

Re: MySql in Linux benutzen

Beitrag von Andreas21 »

Ok dann benutz ich die mal. Der Code war ja auch nur zum testen ob ich eine Verbindung aufbauen kann.

Hier der Code mit.

Wenn ich localhost angebe leufts nicht. Wenn ich aber die IP angebe leufts jetzt.
Ich kann auch nicht unter localhost mich mit dem root verbinden so wie in phpmyadmin.
Scheinbar giebts bei mir ein problem mit localhost. 127.0.0.1 geht nämlich -.-

Code: Alles auswählen

OpenConsole()

If OpenLibrary(0, "/usr/lib/libmysqlclient.so")
  PrototypeC.l Protomysql_init(Flags.l = 0)
  PrototypeC.l Protomysql_real_connect(MYSQL.l, host.s, user.s, pass.s, db.s = "", port.l = 3306, unix_socket.l = 0, client_flag.l = 0)
  PrototypeC.l Protomysql_close(MYSQL.l)
  Global mysql_init.Protomysql_init = GetFunction(0, "mysql_init")
  Global mysql_real_connect.Protomysql_real_connect = GetFunction(0, "mysql_real_connect")
  Global mysql_close.Protomysql_close = GetFunction(0, "mysql_close")
  MYSQL.l = mysql_init()
  If MYSQL
    PrintN("mysql_init OK")
    host.s = "localhost"
    user.s = "root"
    pass.s = ""
    If mysql_real_connect(MYSQL, host, user, pass)
      PrintN("Connected OK!") 
      mysql_close(MYSQL)
    Else
      PrintN("Connected Fehler!")
    EndIf  
  Else
    PrintN("Critical Error mysql_init")
  EndIf  
  CloseLibrary(0)
Else
  PrintN("Critical Error libmysqlclient.so nicht gefunden !")
EndIf

CloseConsole()
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
Antworten