Seite wählen

NETWAYS Blog

Alle User in MySQL anzeigen

Oftmals wachsen Datenbankinstallationen im Laufe der Zeit und man legt immer wieder für neue Projekte neue Datenbanknutzer an. Um hier den Überblick zu behalten, zeige ich kurz, wie man sich die jeweiligen Nutzer anzeigen lassen kann.

Voraussetzungen:

  • Command line/Terminal
  • MySQL oder MariaDB installiert
  • Benutzer in MySQL:Benutzer mit Sudo- oder Root-Rechten

Bei der Installation von MySQL wird bei der Installation als erster Benutzer der Root-Benutzer erstellt – der MYSQL-Administrator. Der Root-Benutzer ist berechtigt, alles in der MySQL-Datenbank zu tun – Eine einfache und zuverlässige Möglichkeit, die MySQL-Sicherheit zu erhöhen, besteht darin, Benutzer mit eingeschränkten Berechtigungsbeschränkungen für die Datenbank zu erstellen.

Wenn Sie Zugriff auf Ihren Server haben, müssen Sie die MySQL-Konsole aufrufen. Dafür benötigen wir Root-Rechte. Geben Sie dies in die Befehlszeile ein:

sudo mysql -u root -p

root@galeria-1:~# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 78
Server version: 10.4.13-MariaDB-1:10.4.13+maria~bionic-log mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

Dann müssen Sie Ihr MySQL-Root-Passwort eingeben. Es sollte sich vom System-Root-Passwort unterscheiden. Sobald Sie in der MySQL-Konsole root sind, können Sie Abfragen und Befehle ausführen. MySQL-Benutzer anzeigen: Jetzt können Sie alle Benutzer in MySQL mit dem folgenden MySQL-Befehl auflisten:

MariaDB [(none)]> SELECT user FROM mysql.user;
+-------------+
| User |
+-------------+
| mariadb.sys |
| mysql |
| root |
| testuser | 
+-------------+
4 rows in set (0.004 sec)
MariaDB [(none)]>

OSDC 2016: More for your datacenter stack

We need more coffee – the first talk of day 2 directly kicked off with automation and challenges. We are using Foreman at NETWAYS and it helps me on a daily basis to deploy development boxes with Opennebula. So it was interesting to find out about insights and challenges by Julien Pivotto with Automating a R&D lab with Foreman: What can be hard?.

#osdc moa 5 starts w/ @roidelapluie from @inuits on managing a R&D lab with @ForemanProject /mif pic.twitter.com/soED2QNoKO

— netways (@netways) April 28, 2016


Sadly the second talk about Interesting things you can do with ZFS by Allan Jude & Benedict Reuschling was at the same time – again one for the conference archive.

Allan Jude and Benedict Reuschling just started their talk "Interesting Things you can do with ZFS" /mn pic.twitter.com/i0J9ub6Rkw

— netways (@netways) April 28, 2016


Decisions decisions. Mesos and the Architecture of the New Datacenter by Jörg Schad or Hybrid Cloud – A Cloud Migration Strategy by Schlomo Shapiro. I guess I’m one of those devops hipsters going for Mesos. Although I hear that its implementation can be tricky (hi Sebastian) we’re using it at NETWAYS and I wanted to learn more about it. Especially since Mesosphere recently announced DC/OS.

.@mesosphere DC/OS #osdc pic.twitter.com/60PdU1Ljq7

— netways (@netways) April 28, 2016


Ingesting Logs with Style sounds like a swiss army knife presentation style. Logs always remind me of the days when there was not Logstash or Graylog around, just some unacceptable expensive Splunk license and your own central syslog server plus some custom handmade scripts. Pere gave an awesome outlook on what’s coming with Elastic Stack 5.0 including hist sports activities as live demos.

Real life @elastic stack demo from @purbon 's sports activities 🙂 #awesome #osdc /mif pic.twitter.com/XAA83HqTCG

— netways (@netways) April 28, 2016


Everyone knows about Docker. Everyone uses it in production already? Or at least tried to until the company’s security team stepped into? Inspecting Security of Docker formatted Container Images to find Peace of Mind provided insights on the most often asked questions when it comes to production deployments.
Right after lunch David Schmitt gave an interesting Introduction to Testing Puppet Modules. Being a developer and writing tests? Meh. The least exciting part right after the documentation bits. Though tests will make your life easier especially with Puppet modules ensuring they won’t break. The talk’s topic also reminds me of Tom de Vylder maintaining the Icinga puppet modules and insisting on rspec tests on every single PR – chapeau 🙂

@dev_el_ops talking about @puppetize testing at #osdc (rspec, rspec-puppet, beaker) pic.twitter.com/J8ZA7LIPqT

— mika (@mikagrml) April 28, 2016


Coming from MariaDB Colin Charles provided tipps and tricks on Tuning Linux for your Database.

. @bytebot from @mariadb is now on stage, talking about Tuning Linux for your Database! /mn pic.twitter.com/F6bQtRIM8p

— netways (@netways) April 28, 2016


An Introduction to Software Defined Networking (SDN) by Martin Loschwitz or Bareos Backup Integration with Standard Open Source Tools with Maik Aussendorf?

An introduction into SDN with @madkissTM at #osdc/be pic.twitter.com/InUn6I6Klp

— netways (@netways) April 28, 2016


Finally the last talks for this years OSDC. We already learned about Puppet and Salt, now it is time for Kaiten Zushi – Chef at Goodgame Studios by Jan Ulferts. Florian Lautenschlager with Chronix – A fast and efficient time series storage based on Apache Solr was again my favourite for the conference archive.
 

Thank you and see you in 2017

The conference archive will be made available in the next couple of days. Save the date – 16.-18.5.2017 🙂
PS: Everything is a freaking DNS problem!

@dnsmichi @bortzmeyer @jpmens I`m actually writing a book on the topic pic.twitter.com/uRhqhNV1J2

— Kris Buytaert (@KrisBuytaert) April 28, 2016

Graphite auf CentOS, RHEL oder Fedora installieren

Um Graphite auf einem CentOS, RHEL oder Fedora zu installieren, muss das EPEL Repository eingebunden werden. Danach können die zu Graphite gehörenden Pakete installiert werden:

yum install python-whisper python-carbon graphite-web

Graphite-web benötigt noch eine Datenbank um Session- und Benutzerinformationen zu speichern, zum Beispiel MySQL:

# mysql -u root -p
mysql> CREATE DATABASE graphite;
mysql> GRANT ALL ON graphite.* TO graphite@localhost IDENTIFIED BY 'graphite';

Damit die erstellte Datenbank von Graphite-web genutzt wird, muss in der Datei /etc/graphite-web/local_settings.py folgende Konfiguration hinzugefügt werden:

DATABASES = {
  'default': {
    'NAME': 'graphite',
    'ENGINE': 'django.db.backends.mysql',
    'USER': 'graphite',
    'PASSWORD': 'graphite',
    'HOST': 'localhost',
    'PORT': '3306',
  }
}

Der Datenbank fehlt jetzt nur noch das Schema und ein administrativer Benutzer, die mit folgendem Kommando angelegt werden:

# /usr/lib/python2.6/site-packages/graphite/manage.py syncdb

Zum Abschluss muss in der Datei /usr/lib/python2.6/site-packages/graphite/settings.py nur noch der SECRET_KEY konfiguriert werden.

Eric Lippmann
Eric Lippmann
CTO

Eric kam während seines ersten Lehrjahres zu NETWAYS und hat seine Ausbildung bereits 2011 sehr erfolgreich abgeschlossen. Seit Beginn arbeitet er in der Softwareentwicklung und dort an den unterschiedlichen NETWAYS Open Source Lösungen, insbesondere inGraph und im Icinga Team an Icinga Web. Darüber hinaus zeichnet er für viele Kundenentwicklungen in der Finanz- und Automobilbranche verantwortlich.

ODBC-Datenbankzugriff mit Powershell

Es gibt manchmal Situationen, in denen man eine Datenbank abfragen muss, der ODBC-Treiber allerdings nur für Windows verfügbar ist und auch keine zusätzliche Skriptsprache installiert werden soll.
Hierfür bietet sich Microsofts objektorientierte Powershell an, mittels derer ein Datenbankzugriff über ODBC relativ einfach zu bewerkstelligen ist. Die Powershell hat außerdem den Vorteil bei aktuellen Windows-Versionen wie z.B. Windows Server 2008 R2 und Windows 7 bereits vorinstalliert zu sein.
Anbei ein kurzes Beispielskript, das exemplarisch eine Verbindung zu einer MSSQL-Datenbank aufbaut, einen Query ausführt und das Ergebnis von selbigem anzeigt:

#DSN angeben, dabei sind _SERVERNAME_, _DATABASE_, _DBUSER_ und _DBPASSWORD_ jeweils zu ersetzen
$DBDSN="Driver={SQL Server};Server=_SERVERNAME_;Database=_DATABASE_;UID=_DBUSER_;PWD=_DBPASSWORD_;"
#Datenbankverbindungsobjekt instanzieren
$DBConnection=New-Object System.Data.Odbc.OdbcConnection
#DSN im Objekt setzen
$DBConnection.ConnectionString=$DBDSN
#Datenbankverbindung öffnen
$DBConnection.Open()
#Datenbankbefehlsobjekt instanzieren
$DBCommand=New-Object System.Data.Odbc.OdbcCommand
#Datenbankverbindung in Befehlsobjekt setzen
$DBCommand.Connection=$DBConnection
#Query angeben, dabei muss _QUERY_ durch das gewünschte Query ersetzt werden
$DBCommand.CommandText="_QUERY_"
#Ein Reader-Objekt erzeugen
$DBResult=$DBCommand.ExecuteReader()
#Anzahl der Rows zählen
#DBCounter=$DBResult.FieldCount
#Rows durchiterieren
while ($DBResult.Read()) {
	for ($i = 0; $i -lt $DBCounter; $i++) {
		#Rows formatiert ausgeben
		@{ $DBResult.GetName($i) = $DBResult.GetValue($i); }
	}
}
#Datenbankverbindung schließen
DBConnection.Close()

Das Skript ist in einer Datei mit .ps1-Endung zu speichern, anschließend muss noch die ExecutionPolicy auf RemoteSigned gesetzt werden, da sonst unsignierte Skripte auch lokal nicht ausgeführt werden dürfen:

PS C:\> Set-ExecutionPolicy RemoteSigned

Anschließend kann das Skript wie folgt aufgerufen werden:

PS C:\> .\odbc-test.ps1

Das Skript erzeugt in unserem Fall z.B. folgende Ausgabe:

Name Value
---- -----
Test Testvalue

Das ganze kann z.B. sehr gut dazu benutzt werden um Icinga-Plugins für Windows zu entwickeln, die einen lokalen ODBC-Treiber verwenden und per NSClient++ aufgerufen werden. Hierzu bietet es sich dann an das Skript mit entsprechenden Parametern zu erweitern und das Skript Exit Codes zurückliefern zu lassen. NSClient++ selbst bietet in seiner Standardkonfiguration bereits Beispiele, wie Powershell-Skripte anzusprechen sind.