Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Zugriff auf MySql Server

Mitglied: Pat.bat

Pat.bat (Level 1) - Jetzt verbinden

13.08.2019, aktualisiert 11:44 Uhr, 300 Aufrufe, 14 Kommentare

Hallo zusammen,

ich bin momentan dabei mich in die Datenbankmaterie einzuarbeiten. Dazu habe ich einen Server bereit gestellt bekommen der auf Windows Server 2019 läuft. Darauf habe ich nun MySQL 8.0 installiert und eine Datenbank erstellt.

In Zukunft möchte ich nun eine Anwenung in C# schreiben die mit dieser Datenbank arbeiten soll. Da ich allerdings recht neu bin Datenbanken zu administrien stellt sich mir die Frage, wie komme ich an die Verbindungsdaten, womit ich später die Connection zwischen dem Programm und der DB aufbaue.

Bzw. Wie kann ich prüfen, das ich eine Verbindung mit dem Server und der DB von meinem Laptop aus hergstellt habe?

Gebe ich auf dem Server über die Eingabeaufforderung ipconfig ein, sehe ich die IP Adresse des Servers, allerdings bin ich mir nicht sicher ob dies reicht.

Klar, für die DB an sich brauche ich dann noch den User und Kennwort, aber dazu muss ja erstmal die Verbindung hergestellt werden können.

Das Fachbuch womit ich mich befasse, stellt leider nur den lokalen Einsatz und Einbindung der DB in ein C# Programm vor, aber nicht, wenn die DB auf einem Server läuft.


Vielen Dank im Voraus.


Nachtrag: Der Server befindet sich in einem Firmennetzwerk. Da werde ich mir wohl die Verbindungsdaten vom IT Dienstleister geben lassen müssen oder?

Nachtrag2: Über das Tool "Server-Manager" sehe ich unter anderem den Computernamen, Domäne und IP Adresse.
Mitglied: StefanKittel
13.08.2019 um 11:40 Uhr
Hallo,

probier mal Dein Glück mit Heidi.
https://www.heidisql.com/

Dazu brauchst Du nur die IP, Benutzername und Kennwort.

Stefan
Bitte warten ..
Mitglied: TheJoker2305
13.08.2019 um 11:49 Uhr
Hallo,

grundlegend hoffe ich zunächst, der Server steht nicht irgendwo im Internet ... Thema Serverabsicherung...

Wenn die Anwendung, mit der eine Verbindung zur Datenbankaufgebaut werden soll, nicht auf dem Server läuft, so muss die externe Erreichbarkeit des MySQL-Datenbankdienstes aktiviert werden.

Zunächst muss mit dem Admin Account der Datenbank (mit dem auch die Datenbank angelegt wurde...) ein separater Account für die Datenbank eingerichtet und berechtigt werden. mit phpMyAdmin z.B. ... Thema Datenbanksicherheit ...

Anschließend kann mit den Zugangsdaten und der IP Adresse des Servers eine Verbindung augebaut werden.

Beispiel gibts hier:
Beispiel C# mysql

Insgesamt hört sich aber alles nach der ersten Datenbankanwendung / -programmierung an. Auf jedenfall erstmal im lokalen Netz testen und wenn alles läuft, dann auf einen gehärteten Server (Sicherheit) übertragen.
Warum MySQL auf einem MS Server 2019?

Ansonsten benötigen wir mehr Infos zur Umgebung und zum Projekt selbst.

Greetz,
thejoker2305
Bitte warten ..
Mitglied: Pat.bat
13.08.2019 um 12:00 Uhr
Hallo,

Entwickelt wird das Projekt über Visual Studio 2017 mit der Sprache C#. Die Anwedung soll eine WPF-App werden worüber Mitarbeiter dann bestimmte Aktionen ausführen können oder auch Inventar über Geräte führen können, dabei soll die Anwendung erweiterbar sein, sodass mit der Zeit immer mehr Funktionen hinzugefügt werden können.

Auf den Windows Server melde ich mich derzeit über eine Citrix Verbindung via Remotedesktopverbindung an. D.h.

1. Ich starte meinen PC
2. Ich Verbinde mich mit unserer Citrix Session/Desktop
3. Über Citrix rufe ich die Remotedesktopverbindung auf und melde mich dann via dem Computernamen auf den Server an

Dort laufen derzeit Batches über die Windows Aufgabenverwaltung.

Nun möchte ich diesen Server aber auch als Datenbankserver für die neue Anwedung nutzen. Als Alternative kam eine Access-DB auf einem Netzwerkpfad in Frage.

Aber wenn man schonmal einen Server hat, wieso nicht für mehr nutzen als nur Jobs.

Ich möchte aber hier nochmal betonen, das ich keine Erfahrung mit dem Administrieren von Servern und DB habe. Mir wurde in der Verganngeheit lediglich eine funktionierende SQL DB samt Verbindungsdaten zur Verfügung gestellt. Daher ist das nun Neuland für mich, worin ich mich aber gerne einarbeiten möchte.

Das Fachbuch was ich bekommen habe, zeigt mir lediglich wie ich eine MySQL DB lokal erstelle und diese einbinde. Daher meine derzeitige Angehensweise.


Vielen Dank für eure Tips soweit.
Bitte warten ..
Mitglied: TheJoker2305
13.08.2019 um 12:52 Uhr
Hallo,

dann wäre der nächste Schritt zu prüfen, ob und wie der "Datenbankserver" von deinem Rechner und den Rechnern, auf denen später die Anwendung laufen soll erreicht werden kann.

Unabhängig von der Aufgabenstellung WPF-Anwendung ... wäre eine PHP / MySQL Lösung denkbar? Der Vorteil: die Datenbankverbindung erfolgt dann nur lokal auf dem Server vom PHP-Skript zur Datenbank.

Das modulare Konzept und die Erweiterungsmöglichkeiten wäre dann auch gegeben. Welches Zeitfenster ist für das Projekt anvisiert? Genügt die Zeit um sich in PHP, MySQL und ggf. Bootstrap zur Gestaltung einzulesen? Sind Vorkenntnisse vorhanden?

Greetz,
thejoker2305
Bitte warten ..
Mitglied: TheJoker2305
13.08.2019 um 13:00 Uhr
NACHTRAG:

Bezüglich der Batch-"Jobs".

Eventuell mal Robotask ansehen.

- komfortabler als die Windows Aufgabenplanung
- Dateikopieren / umbennen / verschieben
- Jobausführung nach Scheduler oder Event (Datei wird in Verzeichnis gelegt)
- SQL Querys als Ziel oder Quelle für Jobausführungen oder das Logging.


Greetz,
thejoker2305
Bitte warten ..
Mitglied: semiconductor
13.08.2019, aktualisiert um 13:42 Uhr
Hallo,

wäre eine PHP / MySQL Lösung denkbar? Der Vorteil: die Datenbankverbindung erfolgt dann nur lokal auf dem Server vom PHP-Skript zur Datenbank.

Wäre doch auch mit ASP.NET, JavaEE usw. doch auch möglich. Voraussetzung ist natürlich, dass der Applikationsserver bzw. der Webserver mit der Anwendung auf dem selben Server läuft wie die DB. Für Entwicklung oder zum Testen wäre das noch in Ordnung. In der produktiven Umgebung würde ich aber eher schauen die Dienste zu trennen. Der DB Server sollte ohnehin nicht von extern erreichbar sein.

Ich persönlich würde eher auf Mysql Workbench oder ein ähnliches Tool für die Verwaltung setzen als auf phpmyadmin. Denn für letzteres braucht es einen Webserver und die phpmyadmin Anwendung muss zusätzlich gepflegt und abgesichert werden.

Viele Grüße
Bitte warten ..
Mitglied: TheJoker2305
13.08.2019 um 14:09 Uhr
Dem stimme ich zu

Zitat von semiconductor:

Hallo,

wäre eine PHP / MySQL Lösung denkbar? Der Vorteil: die Datenbankverbindung erfolgt dann nur lokal auf dem Server vom PHP-Skript zur Datenbank.

Wäre doch auch mit ASP.NET, JavaEE usw. doch auch möglich. Voraussetzung ist natürlich, dass der Applikationsserver bzw. der Webserver mit der Anwendung auf dem selben Server läuft wie die DB. Für Entwicklung oder zum Testen wäre das noch in Ordnung. In der produktiven Umgebung würde ich aber eher schauen die Dienste zu trennen. Der DB Server sollte ohnehin nicht von extern erreichbar sein.

Ich persönlich würde eher auf Mysql Workbench oder ein ähnliches Tool für die Verwaltung setzen als auf phpmyadmin. Denn für letzteres braucht es einen Webserver und die phpmyadmin Anwendung muss zusätzlich gepflegt und abgesichert werden.

Viele Grüße
Bitte warten ..
Mitglied: Pat.bat
13.08.2019 um 14:42 Uhr
ASP.NET hört sich auf jedenfall interessant an.

Allerdings habe ich nur einen Server bekommen, also das zukünftige trennen der Anwedung und DB sieht eher schlecht aus. Somit wäre es aber möglich auf dem Server via Visual Studio zu entwickeln und die Datenbank via Workbench zu verwalten.

Wie würde dann auf auf die Applikation zugegriffen werden? Müsste man sich dazu eine Domain sichern und per url die Application aufrufen oder wie wird das normalerweise gehandhabt.

Ich werde etwas mit ASP.NET "rumprobieren" und ggf. ein Fachbuch bzw Online Kurs dazu belegen.

Das Tool befindet sich derzeit noch in Planungsphase. Momentan bin ich noch an einer VB.NET Anwendung dran, die ich in Zukunft abschließen werde. Dann solls etwas komplexer und professioneller werden.

Vielen vielen Dank für die Hilfe soweit
Bitte warten ..
Mitglied: semiconductor
13.08.2019 um 14:52 Uhr
Zitat von Pat.bat:
Wie würde dann auf auf die Applikation zugegriffen werden? Müsste man sich dazu eine Domain sichern und per url die Application aufrufen oder wie wird das normalerweise gehandhabt.

Du meinst, wie die Applikation auf die DB zugreifen kann? Der Zugriff erfolgt über das Netzwerk. Es gibt dazu bereits eine fertige Library.

Du fügst die MySQL Library dem Projekt hinzu z.B. über NuGet:
https://www.nuget.org/packages/MySql.Data/

Hier gibt es ein entsprechendes Tutorial zu der Library:
https://dev.mysql.com/doc/connector-net/en/connector-net-tutorials-intro ...
Bitte warten ..
Mitglied: Pat.bat
13.08.2019, aktualisiert um 14:59 Uhr
Nein, ich meine wie der User, der ja an Arbeitsplatz XY sitzt auf diese App dann zugreifet. Die appliation sitzt ja soweit ich das verstanden habe auf dem Server. Wie ruft der Mitarbeiter diese nun auf? Er sitzt an seinem PC und ruft dazu einen Link auf oder eine Verknüpfung die auf diesen Server/Application linkt oder wie erfolgt der Zugriff?

Aber trotzdem Danke für die Links mit der MySQL Library, dann hab ich dazu auch schonmal einen Anhaltspunkt
Bitte warten ..
Mitglied: semiconductor
13.08.2019, aktualisiert um 15:06 Uhr
Das kommt auf die Applikation nun drauf an. Handelt es sich um eine Webanwendung, dann ruft der Anwender die Anwendung per Browser auf. Wenn es sich um eine Desktop Anwendung handelt, dann muss der Anwender diese erstmals auf seinem Rechner installieren und startet diese lokal. Die meisten Desktop Anwendungen, welche Daten von einer Datenbank oder einer anderen externen Quelle beziehen, bauen anschließend eine Verbindung zu einem Webservice auf.

Aber das musst du als Entwickler eigentlich wissen.
Bitte warten ..
Mitglied: Pat.bat
13.08.2019, aktualisiert um 15:35 Uhr
Die meisten Desktop Anwendungen, welche Daten von einer Datenbank oder einer anderen externen Quelle beziehen, bauen anschließend eine > Verbindung zu einem Webservice auf.

Das ist mir klar, ich war mir nur mit ASP.NET nicht sicher, wie genau der Nutzer darauf zugreift. Da MS das kurz und knapp so erklärt:

What is ASP.NET?

ASP.NET extends the .NET developer platform with tools and libraries specifically for building web apps.


Also handelt es sich hierbei um eine reine Web-App, diese ruft der User dann per Browser auf, was in meinen Augen interessanter ist. Installation einer Anwendung ist immer so eine Sache bei uns.
Bitte warten ..
Mitglied: ASP.NET.Core
13.08.2019 um 19:20 Uhr
Auf deine Fragen gehe ich später ein, erst mal grundsätzlich zu deinem Anliegen.

Desktop-Anwendung

Wenn du eine Desktop-Anwendung entwickelst und die sich direkt mit der DB verbindet (Beispiellink von @TheJoker2305), liegen die Zugangsdaten beim User. Mit vergleichsweise wenig Aufwand ist es dadurch möglich, weit mehr Rechte zu erhalten als der User haben sollte. Außerdem steht der DB-Server frei im Netz.

Beides sicherheitstechnisch sehr schlecht, daher macht man das in der Regel nicht sondern verwendet eine Middleware. Oft ist das eine HTTP-API. Der User authentifiziert sich meist gegen diese API und sie stellt dann sicher, dass nur diejenigen Aktionen durchgeführt werden, wozu er berechtigt ist.

Versus Web-Anwendungen
Auf der Basis gleich eine Web-Applikation zu bauen, ist in der Regel kein großer Mehraufwand. Dafür sind Web-Anwendungen flexibler (plattformunabhängig), müssen nicht deployt werden und lassen sich leicht zentral aktualisieren. Es empfiehlt sich daher, bevorzugt auf Web-Apps zu setzen. In vielen Fällen ist das möglich. Ausnahmen gibt es natürlich auch hier. Beispielsweise lässt sich ein Tool zum Erstellen/Bearbeiten von Screenshots schlecht vollständig im Web abbilden.

Sprache/Framework
Grundsätzlich kann man das ganze mit so ziemlich jeder Sprache und Framework für Web-Backends umsetzen. Ich habe schon mehrere Sprachen und Frameworks genutzt und würde dir empfehlen, bei C# zu bleiben. Die Sprache ist durch starke typisierung weniger fehleranfällig als beispielsweise PHP/JS. Das alte ASP.NET würde ich nicht mehr nutzen. Stattdessen lieber ASP.NET Core: Plattformunabhängig (brauchst kein proprietäres Windows mehr), schneller (sogar schneller als NodeJS) und modern mit Konzepten wie z.B. Dependency Injection. Außerdem wesentlich flexibler, kann mit einem kleinen Webserver überall laufen (auch auf modernen Stacks wie Docker/k8s). Keine oft unnötige Komplexität mehr durch einen fetten IIS Webserver (notwendig für das alte ASP.NET).

Zitat von Pat.bat:
Allerdings habe ich nur einen Server bekommen, also das zukünftige trennen der Anwedung und DB sieht eher schlecht aus.
Ich würde grundsätzlich anders herum denken: Was brauchst DU, damit deine Anwendung optimal funktioniert? Wo lassen sich Kompromisse machen? Wenn du ausschließlich nur mit dem arbeitest was du hast oder bekommst, wirst du früher oder später mit altem Zeug und seinen Nachteilen arbeiten. Nur mal so am Rande, grade weil du eine völlig neue Anwendung entwickelst und nicht nur was bestehendes erweiterst (wo das Argument ja durchaus valide sein könnte).

Generall geht es dabei aber gar nicht so sehr um deine Infrastruktur, die du jetzt hast. Sondern das Anwendungsdesign. Es ist gängig und legitim, dass z.B. in Entwicklungsumgebungen alles auf der gleichen Maschine läuft. Man sollte DB und Applikation aber nicht unnötig fest miteinander verknüpfen. Sprich z.B. nicht den DB-Host hartkodiert auf localhost setzen, sondern in eine Variable der Konfigurationsdatei auslagern. Wenn du Host, Port, User und Passwort in deiner Config hast (oder alternativ einen ConnectionString), kann dein Datenbankserver problemlos woanders stehen.

Zitat von Pat.bat:
Somit wäre es aber möglich auf dem Server via Visual Studio zu entwickeln und die Datenbank via Workbench zu verwalten.

Entwickeln auf einem Server?! Das ist keine gute Idee. Ein Server sollte Applikationen bereitstellen und am besten so minimal mit Software bestückt sein, wie möglich. Zum an der Applikation rumbasteln gibt es Workstations. Wenn du richtig sauber entwickelst, deployst du auch von da niemals direkt auf ein Produktivsystem. Sondern hast mindestens einen Dev/Testserver dazwischen. Je nach Größe/Relevanz der Software sogar mehrere (z.B. Dev + Quality, mehrere Testsysteme etc). Das ist vor allem für den Anfang sicher etwas overkill. Aber wenigstens 2 Systeme (lokal Entwickeln + Prod Server) solltest du schon MINDESTENS haben, um halbwegs vernünftig entwickeln zu können.

Zitat von Pat.bat:
Wie würde dann auf auf die Applikation zugegriffen werden? Müsste man sich dazu eine Domain sichern und per url die Application aufrufen oder wie wird das normalerweise gehandhabt.

Normal hast du eine Domain oder zumindest Subdomain. In Firmen gibt es i.d.R. einen internen DNS-Server. Der löst dir dann irgend eine TLD auf (z.B. company.internal). Dort einen A-Record deineapp.company.internal auf den Zielserver, und schon kommen alle MA drauf. Abzuklären ist, ob die Anwendung nur firmenintern bereitgestellt werden soll. Falls auch im Internet, müsste man sich da entsprechend der Infrastruktur Gedanken machen, ob in der DMZ ein Proxy existiert etc.

Bei einer Webanwendung (z.B. mit ASP.NET Core) greifen die User dann einfach auf deineapp.company.internal zu. Fürs Verständnis: Falls du eine klassische WPF oder auch WinForms-Anwendung entwickeln würdest, wäre das auch so. Dann würde auf deineapp.company.internal die Middleware laufen. Statt kompletter HTML-Seiten würde die dann eben nur Daten (XML, JSON oder so was) zurückgeben, die von der Desktop-Applikation entsprechend in ihrer GUI aufbereitet bzw. in der Anwendungslogik weiterverarbeitet werden.
Bitte warten ..
Ähnliche Inhalte
Verschlüsselung & Zertifikate
Zugriff auf mySQL-DB mit ODBC und SSL
Frage von Titan24Verschlüsselung & Zertifikate2 Kommentare

Ich möchte für einen Kunden sicher Daten von einer mySQL-DB via ODBC nur lesend abgreifen können. Da die Daten ...

Debian
MySQL Workbench mysql old password
Frage von Fenris14Debian3 Kommentare

Hallo, ich habe hier auf einem Linux Mint den SQL-Client "MySQL Workbench" installiert. Beim anlegen einer neuen Verbindung und ...

Datenbanken

MYSQL Replikation mysql: unknown variable

Frage von Bender999Datenbanken2 Kommentare

Hallo, wollte eine Master Slave Replikation einrichten. Auf der Master Seite steht in der Ini: server-id=1 log-bin=mysql-bin starte ich ...

PHP

Fehler beim Zugriff auf MySQL-Tabelle aus einem Skript heraus

gelöst Frage von gechgerPHP13 Kommentare

Guten Tag, folgende Fehlermeldung macht mir gerade zu schaffen: mysqli_connect(): (HY000/2002): No connection could be made because the target ...

Neue Wissensbeiträge
Humor (lol)
Zuviel Speicher ist ungesund. :-)
Tipp von Lochkartenstanzer vor 5 StundenHumor (lol)8 Kommentare

Moin Kollegen, Heute hatte ich ein ungewöhnliches Aha-Erlebnis: Über das Wochenende habe ich einen einen 6 Jahre alten Bare-Metal ...

Windows Update

KB4517297 verfügbar, behebt Fehler in VB6 VBA VBScript

Information von sabines vor 8 StundenWindows Update

Das Update behebt mögliche Fehler in VB6, VBA und VBScript, die durch das Update KB4512486 vom August entstanden sind. ...

Viren und Trojaner

Staatstrojaner soll auch per Einbruch installiert werden können

Information von transocean vor 1 TagViren und Trojaner3 Kommentare

Moin, Bundesinnenminister Horst Seehofer will dem Verfassungsschutz Wohnungseinbrüche erlauben, um den geplanten Staatstrojaner zu installieren. Gruß Uwe

Windows 7
Win7 Update scheitert KB4512506
Information von infowars vor 2 TagenWindows 7

Falls jemand auch das Problem hat mit dem: Monatliches Sicherheitsqualitätsrollup für Windows 7 für x64-basierte-Systeme (KB4512506) Das scheint mit ...

Heiß diskutierte Inhalte
Switche und Hubs
Glasfaser-Anschluss Telekom muss verteilt werden
Frage von cansoniSwitche und Hubs34 Kommentare

Vorweg: Bin nur Anwender und kein Experte Die Situation: Der Vermieter stellt einen Glasfaseranschluss in der Wohnung bereit. Wir ...

Hyper-V
Bei Neuaufbau auf Core-Server setzen?
gelöst Frage von dertowaHyper-V32 Kommentare

Hallo zusammen, ich habe vor einigen Monaten die Verantwortung für eine EDV-Landschaft übernommen die seit Jahren von einem Dienstleister ...

Hyper-V
VMs von Hyper-V auf externer Festplatte
gelöst Frage von SnowbirdHyper-V18 Kommentare

Hallo, ich möchte gerne von VirtualBox auf Hyper-V umsteigen und würde auch gerne weiterhin meine VMs auf der externen ...

Festplatten, SSD, Raid
SSDs durch Lagerung ohne Strom nach 6 Monaten defekt?!?
gelöst Frage von GlobetrotterFestplatten, SSD, Raid18 Kommentare

Moin Gemeinde Ich hatte gerade nen Trauerspiel Habe hier etliche NAS-Geräte herumfahren welche ich mal auf die Seite gelegt ...