Sziasztok,
egy ismerősöm törölte az egyetlen olyan usert a mysql-ből, aminek minden adatbázishoz volt joga. Hogy tudnám ezt rendbe hozni?
Az alábbiakat csináltam:
- mysql leállítás
- mysqld_safe --skip-grant-tables&
- mysql -uroot
- CREATE USER 'adminuser'@'localhost' IDENTIFIED BY '***';
és ezt kapom, ami logikus is:
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
De mást nagyon nem találtam erre a megoldásra. Mindenhol csak a jelszó resetet írták, új usert nem találtam.
Köszi előre is a segítséget.
Üdv:
B.
- 1742 megtekintés
Hozzászólások
workaround:
sudo mv /var/lib/mysql/mysql /var/lib/mysql/mysql_old_mert_elbasztam
sudo dpkg-reconfigure mysql-server
- A hozzászóláshoz be kell jelentkezni
Köszi. De gondolom így az összes user törlődik, és az összeset kézzel létre kell hozni. Jól gondolom?
- A hozzászóláshoz be kell jelentkezni
nem! benne lesznek a mysql_old_mert_elbasztam nevű adatbázisban!
onnan kell majd őket átrakni.
- A hozzászóláshoz be kell jelentkezni
Ebben kérhetném a segítségedet, hogy kell?
- A hozzászóláshoz be kell jelentkezni
az adatbázisok nevei:
ls /var/lib/mysql
bármelyik könyvtárat átnevezed az adatbázist nevezed át.
- A hozzászóláshoz be kell jelentkezni
Ezt tudom, de a "mysql_old_mert_elbasztam" könyvtárból hogy tudom áthozni a felhasználókat? Vagy kézzel kell létrehoznom őket?
köszi
- A hozzászóláshoz be kell jelentkezni
dump-edit-dump?
- A hozzászóláshoz be kell jelentkezni
google://SELECT INTO
--
"SzAM-7 -es, tudjátok amivel a Mirage-okat szokták lelőni" - Robi.
- A hozzászóláshoz be kell jelentkezni
Van ugye a mysql db ahol tárolva vannak a felhasználók meg még más adatok.
mysqldump -u root -p -v mysql > elbaszott_mysql_db.sql Lemented az egész mysql adatbázist.
Megcsinálod a köztes lépéseket.
mysql -u root -p mysql < elbaszott_tabla.sql Visszatöltöd az elbaszott adatbázist.
Szerintem így.
- A hozzászóláshoz be kell jelentkezni
cat /var/mysql/debian.cnf
És itt van a debian-sys-maint user a passal együt.
aszem a rendszer beépítet rootja vagy mi, de legalábbis egy tartalék root hozzáférés.
- A hozzászóláshoz be kell jelentkezni
--
- A hozzászóláshoz be kell jelentkezni
ez jónak tűnik. A teszt környezetemben megy a dolog. Köszi. Visszajelzek, amint van valami.
- A hozzászóláshoz be kell jelentkezni
Sajnos nem jó. Nálam tesztben debian-sys-maint uservek ALL PRIVILEGES a jogan, az éles környezetben pedig nem, így nem tudok új usert létrehozni.
- A hozzászóláshoz be kell jelentkezni
Vedd fel kezzel a usert a mysql db megfelelo tablaiba, illetve a havertol vedd el a root accot.
- A hozzászóláshoz be kell jelentkezni
"és ezt kapom, ami logikus is:
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement"
És mi lenne, ha a rott@localhost user jelszavát beállítanád a megfelelő táblában, aztán elindítanád normálisan a mysql-t, belépnél root-ként és használnád normálisan?
update mysql.user set Password=PASSWORD('blabla') WHERE User='root';
vagy ha ezt törölted akkor beírnád kézzel
insert into `mysql`.`user` (`Host`, `User`, `Password`, `Select_priv`, `Insert_priv`, `Update_priv`, `Delete_priv`, `Create_priv`, `Drop_priv`, `Reload_priv`, `Shutdown_priv`, `Process_priv`, `File_priv`, `Grant_priv`, `References_priv`, `Index_priv`, `Alter_priv`, `Show_db_priv`, `Super_priv`, `Create_tmp_table_priv`, `Lock_tables_priv`, `Execute_priv`, `Repl_slave_priv`, `Repl_client_priv`, `Create_view_priv`, `Show_view_priv`, `Create_routine_priv`, `Alter_routine_priv`, `Create_user_priv`, `ssl_type`, `ssl_cipher`, `x509_issuer`, `x509_subject`, `max_questions`, `max_updates`, `max_connections`, `max_user_connections`) VALUES
('localhost', 'root', PASSWORD('blabla'), 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '', 0, 0, 0, 0);
- A hozzászóláshoz be kell jelentkezni
Nekem ez valaha működött... azóta lehet, hogy változott valami és már nem fog menni.
- $ /etc/init.d/mysql stop
- $ /usr/bin/mysqld_safe --skip-grant-tables &
- $ mysql -h localhost
- > use mysql;
- > UPDATE user SET password = password('uj_jelszo') WHERE user = 'root' AND host = 'localhost';
- > quit;
- $ /etc/init.d/mysql restart
--
maszili
- A hozzászóláshoz be kell jelentkezni
a valaszolok ugylatom hogy nem nagyon veszik eszre, hogy nem arrol van szo, hogy el lett felejtve a root user jelszava, hanem torolve lett az egyetlen root user.
ettol fuggetlenul persze mukodik, hogy --skip-grant-tables -szel inditva a mysql-t, letrehozunk egy uj root usert, de a CREATE USER vagy GRANT utasitasok ilyenkor nem mukodnek, viszont a mysql adatbazis user tablajat normal sql utasitasokkal (insert/udpate) tudjuk piszkalni, es egy restart utan mar mukodni is fog.
amugy errol van egy bugreport is:
http://bugs.mysql.com/bug.php?id=38513
itt latszik, hogy ha a belepes utan nyomsz egy FLUSH PRIVILEGES -et, akkor utana mukodik a GRANT is.
amugy ez azert van, mert ha --skip-grant-tables -szel inditod a mysql-t, akkor nem olvassa fel az auth tablakat, emiatt nem is mukodnek a jogosultsagokkal kapcsolatos utasitasok, de egy FLUSH PRIVILEGES-szel ujra lehet olvastatni ezeket a tablakat.
Tyrael
- A hozzászóláshoz be kell jelentkezni
mysql adatbazis user tablajat normal sql utasitasokkal (insert/udpate) tudjuk piszkalni, es egy restart utan mar mukodni is fog.
ilyenkor egy
# mysqladmin reload
is jol jon neha, esetleg ezt is erdemes kiadni. a'rtani biztos nem a'rt ;]
a
- A hozzászóláshoz be kell jelentkezni
az a FLUSH PRIVILEGES szinonimaja. :)
Tyrael
- A hozzászóláshoz be kell jelentkezni
köszönöm, pont ezt akartam írni én is, hogy nincs root userem. Ki fogom próbálni, amit írtál.
Köszi:
Balázs
- A hozzászóláshoz be kell jelentkezni
http://hup.hu/node/94937#comment-1151870 ezt mondtam en is, bar ez a flush privileges dolog uj :)
- A hozzászóláshoz be kell jelentkezni
Köszi mindenkinek a helpet, megoldva a dolog, volt fájl szintű mentés, visszamásoltam a /var/lib/mysql/mysql-t
Balázs
- A hozzászóláshoz be kell jelentkezni