apt-get install mysql-server mysqlpasswort vergeben
MySql starten :
rcmysql start #oder /etc/init.d/mysql restart
mysql -h localhost -u root -p password: create database mono; grant CREATE,INSERT,DELETE,UPDATE,SELECT,ALTER on mono.* to benutzer@localhost; set password for benutzer@localhost = password('geheimespasswort'); flush privileges; commit; exit;
/mysql/bin/mysqladmin -u root password geheim #oder SET PASSWORD FOR 'meinBenutzer'@'%' = PASSWORD('geheim');
show databases;
use track;
source migrate370to380.sql;
show global variables like "version";
mysqldump -uroot -pseinpasswort -hlocalhost meinedb > meinedb.sql
mysql -uroot -pseinpasswort <meinedb.sql
oder
mysql -uroot -pPasswort use bugzilla3; source meinDump.sql; exit; /etc/init.d/mysql restart
als sqlroot anmelden, dann:
show status like 'Qcache%';
Vorsicht Zugriff von allen Rechnern erlaubt!
in Datei /etc/mysql/my.cnf
den Eintrag ändern:
bind-address = 192.168.1.11 #IPadresse des Mysqlservers
dann Benutzer freischalten deshalb als root an mysql anmelden:
# GRANT ALL ON *.* to 'root'@'%' IDENTIFIED BY 'geheim'; GRANT ALL ON *.* to 'meinBenutzer'@'clientoderIP_des_Benutzers' IDENTIFIED BY 'geheimnis'; flush privileges;
anschließend kontrollieren wer darf von wo sich anmelden?
use mysql; select host,user from user; select user from mysql.user;
GRANT ALL PRIVILEGES ON `fxacc` . * TO 'fxacc'@'192.168.10.99';
SHOW GRANTS; SHOW GRANTS for 'myuser'@'localhost';
GRANT FILE ON *.* to 'myuser'@'localhost'; SELECT * from mydb into OUTFILE '/tmp/myfile.sql';
testdatenbank löschen.
anonymous löschen.
rootpasswort eventuell ändern.
mysql_secure_installation
too many connections
mysql>show processlist; mysql>show variables like 'max_connections'; +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | max_connections | 151 | +-----------------+-------+
Eintrag max_connections
in /etc/mysql/my.cnf
auf 500 erhöhen. Ggf. mehr Speicher.
mysql> show variables like 'max_connections'; +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | max_connections | 500 | +-----------------+-------+
Serverdienst dann neu starten.
oder ohne Neustart des Serverdienstes:
set @@global.max_connections = 500;
die Sleep-Connections von 8 Stunden auf 1 Stunde drücken:
set @@global.interactive_timeout=3600; set @@global.wait_timeout=3600;
MYSQL schützt die Home- und Systemverzeichnisse, deshalb eine Datei /etc/systemd/system/mariadb.service.d/noprotect.conf
mit dem Inhalt erstellen und dienst dann neu starten:
[Service] ProtectHome=false
sowie die rechte an dem Verzeichnis mit setfacl -d -m u:mysql:rwx /home/myuser/test
ändern.
wget http://mysqltuner.pl mysql> show variables like 'query_cache_type';
Eintrag query_cache_type=1
in /etc/mysql/my.cnf
prüfen/setzen.
Lese aus der Datenbank puppet
die Tabellen nodes
, roles
, profiles
, os
oder creator
wahlweise aus:
Der Aufruf der client.html
übergibt der variable 'q' eine Zahl abhängig von der Auswahl und fragt damit die Datei mysql.php ab.
<html> <head> <script> function show(str) { if (str == "") { document.getElementById("txtHint").innerHTML = ""; return; } else { if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp = new XMLHttpRequest(); } else { // code for IE6, IE5 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById("txtHint").innerHTML = this.responseText; } }; xmlhttp.open("GET","mysql.php?q="+str,true); xmlhttp.send(); } } </script> </head> <body> <form> <select name="myform" onchange="show(this.value)"> <option value="">Select a table:</option> <option value="1">nodes</option> <option value="2">roles</option> <option value="3">profiles</option> <option value="4">os</option> <option value="5">creator</option> </select> </form> <br> <div id="txtHint"><b>table info will be listed here...</b></div> </body>
<?php //-------------------------------------------------------------------------- // Aufruf mit http://meinserver/mysql.php?q=1 //-------------------------------------------------------------------------- $q = intval($_GET['q']); $buf = ""; switch($q){ case 1: $buf = 'nodes';break; case 2: $buf = 'roles';break; case 3: $buf = 'profiles';break; case 4: $buf = 'os';break; case 5: $buf = 'creator';break; default: echo "falscher Wert, ende"; exit ; } $host = "mysqlsrv"; $user = "puppetuser"; $pass = "verysecret"; $dbName = "puppetdb"; try { $pdo = new PDO("mysql:host=$host;dbname=$dbName", $user,$pass, array( PDO::ATTR_PERSISTENT => true)); $sql = "SELECT * FROM ".$buf.";"; foreach ($pdo->query($sql) as $row) { # echo $row['name']."<br />"; echo "<pre>"; print_r($row,false); #var_dump($row); echo "</pre>"; #echo ($row); # $pdo = null; } } catch (PDOException $e) { print "Error!: " . $e->getMessage() . "<br/>"; die(); }