Extra Info zu Mysql: ist ein DB System
Lösung (my.cnf):
max_allowed_packet=2G
Extra Info zu Mysql: ist ein DB System
Lösung (my.cnf):
max_allowed_packet=2G
ALTER USER 'myusername'@'localhost' IDENTIFIED BY 'mynewspassword';
Fehler
SQL-Befehl:
ALTER TABLE `dienstzeit` ADD CONSTRAINT `fk_dienstnummer` FOREIGN KEY (`dienstnummer`) REFERENCES `dienstnummer`(`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
MySQL meldet:
#1452 - Kann Kind-Zeile nicht hinzufügen oder aktualisieren: eine Fremdschlüsselbedingung schlägt fehl (`mydb2`.`#sql-ede_59b320`, CONSTRAINT `fk_dienstnummer` FOREIGN KEY (`dienstnummer`) REFERENCES `dienstnummer` (`id`))
Standardmäßig kann MyISAM gigantische Datenmengen viel schneller importieren als InnoDB. Man kann aber Einstellungen erst anpassen dann Import-in-InnoDB starten. Dann läuft alles viel schneller.
mysql>
SET autocommit=0;
SET unique_checks=0;
SET foreign_key_checks=0;
source meine-grosse-datenbank.sql
COMMIT;
SET unique_checks=1;
SET foreign_key_checks=1;
Man muss erst group_concat_max_len erhöhen;
SET SESSION group_concat_max_len = 123456789;
select group_concat(nid, ',') from news where year='2019';
Versuch 1 - Optimieren:
Table 'logs' is marked as crashed and last (automatic?) repair failed
Versuch 2 - Reparieren:
Can't create new tempfile: './mydb1/logs.TMD' |
| mydb1.logs| repair | status | Operation failed
Wenn beide versuche nicht funktionieren, ist es Zeit für <strong>myisamchk</strong>.
Lösung mit MySQL MyIsamCheck
Zu MySQL-Data-Ordner wechseln:
cd /var/lib/mysql/mydb1/
Lösung 1:
Mysql Query - Update mit Regex
update mytable1
set myfield1=regexp_replace(
myfield1,
'<div class="oldsite">(.*)</div>',
'<div class="newsite"> <p> \\1 </p> </div>'
)
Mysql und Mysqld stoppen:
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysqld stop
Mysql_safe starten:
sudo mysqld_safe --skip-grant-tables & mysql -u root
Passwort aktualisieren:
use mysql;
update user set password=PASSWORD("mynewpassword") where User='root';
flush privileges;
quit
Mysql und Mysqld neustarten:
CREATE USER 'superadmin'@'localhost' IDENTIFIED BY '123';
GRANT ALL PRIVILEGES ON * . * TO 'superadmin'@'localhost';
FLUSH PRIVILEGES;