RSS Feed

LMS i odzyskiwanie z backupu

Grudzień 2, 2011 by 0verlord

Sytuacja jak zazwyczaj: pada mi host z lmsem, backup się zrobił i odzyskał. Trzeba po prostu odzyskać, bez upgrade i innych takich tam sztuczek. No to jadę – przenoszę bazy, ale mysql < baza.sql rzuca permission denierem i wymaganiami super usera. Dokładnie takimi erorrami rzucało: Napotkano błędy w bazie danych!
Zapytanie: CREATE FUNCTION lms_current_user() RETURNS int(11) NO SQL
RETURN @lms_current_user;
Błąd: You do not have the SUPER privilege and binary logging is enabled
(you *might* want to use the less safe log_bin_trust_function_creators
variable)
Zapytanie: CREATE VIEW customersview AS SELECT c.* FROM customers c
WHERE NOT EXISTS ( SELECT 1 FROM customerassignments a JOIN
excludedgroups e ON (a.customergroupid = e.customergroupid) WHERE
e.userid = lms_current_user() AND a.customerid = c.id)
Błąd: FUNCTION lms.lms_current_user does not exist

Przywróciłem bazę z doc/lms.mysql, ale nie pomogło, dalej pluło errorami z customerviewsem.
Wujek google skierowął mnie tu.

W skrócie: uwaliłem viewsy, wszystkie:
CREATE VIEW nas AS
SELECT n.id, inet_ntoa(n.ipaddr) AS nasname, d.shortname, d.nastype AS type,
d.clients AS ports, d.secret, d.community, d.description
FROM nodes n
JOIN netdevices d ON (n.netdev = d.id)
WHERE n.nas = 1;

CREATE VIEW vnodes_mac AS
SELECT nodeid, GROUP_CONCAT(mac SEPARATOR ',') AS mac
FROM macs GROUP BY nodeid;

CREATE VIEW vnodes AS
SELECT n.*, m.mac
FROM nodes n
LEFT JOIN vnodes_mac m ON (n.id = m.nodeid);

CREATE VIEW vmacs AS
SELECT n.*, m.mac, m.id AS macid
FROM nodes n
JOIN macs m ON (n.id = m.nodeid);

CREATE VIEW customersview AS
SELECT c.* FROM customers c
WHERE NOT EXISTS (
SELECT 1 FROM customerassignments a
JOIN excludedgroups e ON (a.customergroupid = e.customergroupid)
WHERE e.userid = lms_current_user() AND a.customerid = c.id);

i dodałem funkcję:
CREATE FUNCTION lms_current_user() RETURNS int(11) NO SQL RETURN @lms_current_user;.

Wszystko oczywiście po dodaniu bazy i usera do niej.Chciałem też odpowiednio okomentować w blogu z linka przydatne informacje, a tutaj niespodzianka:

WordPress database error: [INSERT command denied to user 'xxx'@'localhost' for table 'wp_comments']

Życie. Więc podziękuję tu:

Thenks meeeen, I loveeee youuuuu 😀 (i napraw sobie zapomnianego worpdressa ;-))

EDIT: wszystkie viewsy trzeba skasować, jak leci wszystkie, tj.

DROP VIEW IF EXISTS nas;
DROP VIEW IF EXISTS vnodes_mac;
DROP VIEW IF EXISTS vnodes;
DROP VIEW IF EXISTS vmacs;
DROP VIEW IF EXISTS customersview;

W sumie ciekawe, dlaczego dump nie odtworzył viewsów. Ale nie chce mi się szukać.


Brak komentarzy »

No comments yet.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

+ 1 = jedenaście