PureBoard
http://forums.purebasic.com/german/

Was muss für mySqlDatabase installiert sein?
http://forums.purebasic.com/german/viewtopic.php?f=21&t=31678
Seite 1 von 1

Autor:  topsoft [ 06.10.2019 23:37 ]
Betreff des Beitrags:  Was muss für mySqlDatabase installiert sein?

Hallo,
ich habe folgenden Code auf Linux und will ihn kompilieren.
Code:
EnableExplicit
UseMySQLDatabase()

If OpenConsole()
        Define hDatabase.i = OpenDatabase(#PB_Any, "host=xxxxxxxxxx port=3306 dbname=testdb", "topsoftsql", "xxxxxxxxx", #PB_Database_MySQL)
        If hDatabase
                PrintN("Datenbank geoeffnet")
        Else
                PrintN("Fehler, kann Datenbank nicht oeffnen")
                PrintN(DatabaseError())
        EndIf
        If hDatabase : CloseDatabase(hDatabase) : PrintN("Datenbank geschlossen") : EndIf
        Input()
        CloseConsole()
EndIf
End

Dabei bekomme ich vom Debugger aber nachfolgende Fehlermeldung.
Code:
pbcompiler -d test.pb

******************************************
PureBasic 5.71 LTS (Linux - x64)
******************************************

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

- Feel the ..PuRe.. Power -


[Debugger Error]  UseODBCDatabase(), UseSQLiteDatase() or UsePostgreSQLDatabase() need to be called before using database commands.
[Debugger Error]  File: test.pb (Line: 5)
  Do you wish to continue the program? (Yes, No, Debugger Console, Ignore all)
  (y,N,d,i)
[Debugger Error]  Input error from stdin, program is exiting.

Von einem Windows Computer aus geht das. Auf dem Linux Rechner sind folgende Pakete installiert:
Code:
libiodbc.i686 : iODBC Driver Manager
libiodbc.x86_64 : iODBC Driver Manager
libiodbc-devel.i686 : Header files and libraries for iODBC development
libiodbc-devel.x86_64 : Header files and libraries for iODBC development
unixODBC.i686 : A complete ODBC driver manager for Linux
unixODBC.x86_64 : A complete ODBC driver manager for Linux
unixODBC-devel.i686 : Development files for programs which will use the unixODBC library
unixODBC-devel.x86_64 : Development files for programs which will use the unixODBC library

Was muss den noch vorhanden sein um sich mit einer mariadb Datenbank zu verbinden?
Gruß Topsoft

Autor:  ccode_new [ 22.10.2019 22:32 ]
Betreff des Beitrags:  Re: Was muss für mySqlDatabase installiert sein?

Hallo topsoft,

kannst du "sudo mysql" über das Terminal ausführen ?

Welches Linux verwendest du ?

Probiere mal:
sudo apt-get install mysql-server

Autor:  DarkDragon [ 23.10.2019 05:35 ]
Betreff des Beitrags:  Re: Was muss für mySqlDatabase installiert sein?

Ich glaube per default ist eine Verbindung nur von localhost zulässig. Verbindest du dich von außen zur Datenbank?

Autor:  ccode_new [ 24.10.2019 19:34 ]
Betreff des Beitrags:  Re: Was muss für mySqlDatabase installiert sein?

DarkDragon hat geschrieben:
Ich glaube per default ist eine Verbindung nur von localhost zulässig.


Nein!

"localhost" muss als "127.0.0.1" angegeben werden !


Es muss ein Benutzer (außer root) für "localhost" erstellt sein.
MySQL unterscheidet zwischen "localhost" - Benutzern und allgemeinen Netzwerk-Benutzern.

Hier ein Beispiel:

sudo mysql

MariaDB [(none)]> CREATE SCHEMA IF NOT EXISTS test;
MariaDB [(none)]> CREATE USER
-> 'Pinguin'@'%' IDENTIFIED BY 'passwort'
->;
MariaDB [(none)]> GRANT INSERT, UPDATE, DELETE, SELECT ON TABLE test.* TO 'Pinguin'@'%', 'Pinguin'@'localhost';
MariaDB [(none)]> exit

Beispiel:
Code:
UseMySQLDatabase()

; You should have a server running on localhost
;
If OpenDatabase(0, "host=127.0.0.1 port=3306 dbname=test", "Pinguin", "passwort")
  Debug "Connected to MySQL"
Else
  Debug "Connection failed: "+DatabaseError()
EndIf


-> Der Beispielbenutzer "Pinguin" kann so als "localhost" erstellt werden:

MariaDB [(none)]> CREATE USER
-> 'Pinguin'@'localhost' IDENTIFIED BY 'passwort'
->;

(% ist nur ein PLatzhalter)

-> GRANT ALL ist natürlich noch besser!

Ich könnte auch mal ein kleines Tutorial erstellen. (vielleicht)

Autor:  DarkDragon [ 24.10.2019 20:34 ]
Betreff des Beitrags:  Re: Was muss für mySqlDatabase installiert sein?

ccode_new hat geschrieben:
DarkDragon hat geschrieben:
Ich glaube per default ist eine Verbindung nur von localhost zulässig.


Nein!

Stimmt, habs grad nachgeschlagen:
https://dev.mysql.com/doc/refman/5.5/en ... nd-address

Default ist auf allen Netzwerkschnittstellen zu horchen, nicht nur auf loopback.

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/