Kirjoittaja Aihe: Mysql salasana  (Luettu 9115 kertaa)

jmu

  • Käyttäjä
  • Viestejä: 96
    • Profiili
Mysql salasana
« : 21.07.18 - klo:13.27 »
Miten saan Mysql-palvelimen käyttööni, kun olen unohtanut LAMPin asennuksen yhteydessä luoman salasanan?  Saan vain ilmoituksen:

Koodia: [Valitse]
ERROR 1045 (28000): Access denied for user ...

jekku

  • Käyttäjä
  • Viestejä: 2624
    • Profiili
Vs: Mysql salasana
« Vastaus #1 : 21.07.18 - klo:15.57 »
https://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html

Joskus olen moisen listan merkinnyt muistiin:

On Centos this will work:
1. Stop the mysql server by using #service mysqld stop
2. Now start the server using #service mysqld_safe --skip-grant-tables &
3.login as #mysql -u root
4.change root password by the command mysql> set password=password('NEW_PASSWORD');
5. flush the privileges mysql> flush privileges;
6 mysql>quit
7.Stop your mysql #service mysqld stop
8. Now start it normally #service mysql start

Mutta merkinnällä: "Kai tuo pitäisi kokeilla joskus."

Nuo risuaidat '#' antanevat vihjeen että komennot annetaan rootin tunnuksella.

jmu

  • Käyttäjä
  • Viestejä: 96
    • Profiili
Vs: Mysql salasana
« Vastaus #2 : 21.07.18 - klo:17.45 »
Palvelin ei tunnista 'mysqld':tä, ilmoittaa vaan 'mysql: unrecongnized service'
mysql-palvelimen saa kyllä pysäytettyä, mutta 'mysql_safe' kanssa on taas sama juttu: 'mysqld: unrecongnized service'

jekku

  • Käyttäjä
  • Viestejä: 2624
    • Profiili
Vs: Mysql salasana
« Vastaus #3 : 21.07.18 - klo:18.55 »
Nojoo, onkohan nimi muuttunut?
Onko hakemistoissa /etc/rc?.d jotain joka viittaa Mysql:ään?

Toisaalta, ei kai tuossa kauan mene jos asennan kannan Ubuntukoneesenikin ja kokeilen.

Edit:
Asensin kokeeksi Ubuntu 18.04:ään tuon kannan.
Ja huomasin ettei root tarvitse mitään salasanaa? Ainakaan oletusasennuksessa.

Kokeiles logata rootiksi (sudo -s)
ja käynnistää se mysql -sessio?

Koodia: [Valitse]
sudo -s
mysql
« Viimeksi muokattu: 21.07.18 - klo:19.59 kirjoittanut jekku »

jmu

  • Käyttäjä
  • Viestejä: 96
    • Profiili
Vs: Mysql salasana
« Vastaus #4 : 21.07.18 - klo:20.12 »
Sama tulos: Access denied.  Olen aiemmin myös kokeillut poistaa Mysql:n asennuksen kokonaan ja asentaa uudelleen, mutta en päässyt uudelleen konfiguroimaan sitä ja valittaa edelleen Access deniedia.

jekku

  • Käyttäjä
  • Viestejä: 2624
    • Profiili
Vs: Mysql salasana
« Vastaus #5 : 22.07.18 - klo:05.23 »
Sama tulos: Access denied.  Olen aiemmin myös kokeillut poistaa Mysql:n asennuksen kokonaan ja asentaa uudelleen, mutta en päässyt uudelleen konfiguroimaan sitä ja valittaa edelleen Access deniedia.

Miten ja mitä koetit konfiguroida?

Kun kokeilin niin asensin vain peruspalikan
Koodia: [Valitse]
sudo -s
apt install mysql-server

Kun asennus hoidettu niin jatkoin (edelleen roottina, "sudo -s") käynnistämällä kantasession (ilman mitään tunnusta, salasanaa tai kantavalintaa):

Koodia: [Valitse]
root@E5500:~# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.7.22-0ubuntu18.04.1 (Ubuntu)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

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

mysql>

josta jatkoin konffausta:

Koodia: [Valitse]
mysql> create database testi;
Query OK, 1 row affected (0.00 sec)

mysql> create user 'lamp'@'localhost' identified by 'salasana';
Query OK, 0 rows affected (0.00 sec)

mysql> grant all privileges on testi.* to 'lamp'@'localhost';
Query OK, 0 rows affected (0.00 sec)

root@E5500:~# mysql -u lamp -psalasana testi
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.22-0ubuntu18.04.1 (Ubuntu)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
Käynnistin kantasession roottina ja:
Koodia: [Valitse]
mysql> alter user 'lamp'@'localhost' identified by 'uusisana';
Query OK, 0 rows affected (0.00 sec)

root@E5500:~# mysql -u lamp -puusisana testi
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.22-0ubuntu18.04.1 (Ubuntu)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

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

Mutta tuo muistiinmerkitsemäni ohje vaikuttaa vanhentuneelta, toki tuo /usr/bin/mysqld_safe on, mutta ei toimi odotetulla tavalla.

Koodia: [Valitse]
root@E5500:~# file /usr/bin/mysqld_safe
/usr/bin/mysqld_safe: POSIX shell script, ASCII text executable

root@E5500:~# wc -l /usr/bin/mysqld_safe
1006 /usr/bin/mysqld_safe


Enkä aio lukea mitä siellä on ;)

jmu

  • Käyttäjä
  • Viestejä: 96
    • Profiili
Vs: Mysql salasana
« Vastaus #6 : 22.07.18 - klo:15.33 »
Olen alunperin asentanut Mysql:n Apachen ja Php:n yhteydessä wiki.ubuntu-fi.org:n ohjeiden mukaan komennolla:

Koodia: [Valitse]
sudo aptitude install apache2 php5 apache2.2-common libapache2-mod-auth-mysql php5-mysql mysql-server
Asennettaessa Mysql on kysynyt pääkättäjän salasanan, jonka olen unohtanut.  Nyt olen poistanut mysql-server:n.  Pitäisikö poistaa jotain muutakin?

Mysql:a asennettaessa uudelleen komennolla:                   

Koodia: [Valitse]
sudo apt-get install mysql-server
ei kysytä salasanoja uudelleen, eikä muutakaan konfigurointia.    Asennuksen jälkeen mysql-komento tuottaa tuloksen "Access denied ..."

Mikä tarkoitus on mysqladmin:lla tässä?

jekku

  • Käyttäjä
  • Viestejä: 2624
    • Profiili
Vs: Mysql salasana
« Vastaus #7 : 22.07.18 - klo:22.40 »
Enpäs muista tuon mysqladminin roolia. Lienenkö edes käyttänyt.

Vaan kokeilitko noita komentoja roottina? Haiskahtaa siltä että johonkin on jäänyt jotain kummittelemaan.
Jos olet joka tapauksessa jo jyrännyt edellisen asennuksen yli, niin ei liene iso nakki kokeilla vielä kertaalleen?

Jos aamuksi helle hellittää niin boottaan tuon Ubuntukoneen ja katson mitä ja mihin on hillottu tarvittavat tiedostot.

Tuo malliasennukseni ei ole tuollaisenaan 'valmis' ainakaan julkiseen nettikäyttöön, kokeilinpa minimillä.

Millainen on kannan varmuuskopioiden tilanne, vai onko ylimalkaan tarvetta palauttaa jotain?

jekku

  • Käyttäjä
  • Viestejä: 2624
    • Profiili
Vs: Mysql salasana
« Vastaus #8 : 23.07.18 - klo:07.21 »
Pikaisen tarkistuksena voisit katsoa onko hakemiston /var/lib/mysql/mysql aikaleimat järkevän näköisiä

Koodia: [Valitse]
root@E5500:~# ls -l /var/lib/mysql/mysql/user.*
-rw-r----- 1 mysql mysql 10816 heinä 21 19:29 /var/lib/mysql/mysql/user.frm
-rw-r----- 1 mysql mysql   600 heinä 21 19:51 /var/lib/mysql/mysql/user.MYD
-rw-r----- 1 mysql mysql  4096 heinä 21 19:52 /var/lib/mysql/mysql/user.MYI

Nuo näyttävät täsmäävän harjoituksen aikoihin.

Ja saman tien vaikka koko hakemisto:
Koodia: [Valitse]
root@E5500:~# ls -l /var/lib/mysql/mysql/

Asennuksessa tuo hakemisto on luotu, ja senkin voi tarkistaa
Koodia: [Valitse]
root@E5500:~# grep datadir /etc/mysql/mysql.conf.d/mysqld.cnf
datadir = /var/lib/mysql


Hiukan ihmetyttää jos uuden asennuksen jälkeen vaatii rootilta salasanan?
Minulta ei kysellyt mitään ja kuten aiemmista esimerkeistä näet, hyvin antoi logata sisään ja jatkaa.

retu

  • Käyttäjä
  • Viestejä: 949
    • Profiili
Vs: Mysql salasana
« Vastaus #9 : 23.07.18 - klo:11.12 »
Käyttäjätunnkset ja salasanat ovat noissa user-tiedostoissa. Mysql uudelleenasennus ei kuitenkaan poista niitä. Jos et saa muuten resetoitua tuota, niin:
  • poista mysql
  • poista user.* tiedostot
  • asenna mysql

jekku

  • Käyttäjä
  • Viestejä: 2624
    • Profiili
Vs: Mysql salasana
« Vastaus #10 : 23.07.18 - klo:12.32 »
Käyttäjätunnkset ja salasanat ovat noissa user-tiedostoissa. Mysql uudelleenasennus ei kuitenkaan poista niitä. Jos et saa muuten resetoitua tuota, niin:
  • poista mysql
  • poista user.* tiedostot
  • asenna mysql

Tuossa se 'syyllinen' saattaa olla ja majailla.

Jostain on iskostunut "uudelleen asennuksen" marssijärjestykseksi:
 
Koodia: [Valitse]
sudo -s
aptitude purge mysql-server
aptitude install mysql-server
 

Joten en tuota hiffannut.

Mihin lie (ja miksi) poistunut tuo käynnistysloitsun vipu jolla sai skipattua noiden taulujen käytön?

Vaan asiallinen harjoitus siinä mielessä että tulipa taas tarkistettua ovatko tuotantokantojen kopiot tuoreet ja ehjät ;)

retu

  • Käyttäjä
  • Viestejä: 949
    • Profiili
Vs: Mysql salasana
« Vastaus #11 : 23.07.18 - klo:12.55 »
Asennuksen poisto-ohjelma voisi varmaankin ihan helposti poistaa myös tietokannat, mutta aavistelen ettei se olisi kovin toivottu "ominaisuus".

Eri MySql versiot eivät ole täysin yhteensopivia keskenään, mm. asetusten nimet saattavat muuttua tai jäädä pois. Isompaan versioon siirtyminen voi siksi vaatia hieman säätöä. Tämä 5.7 versio varsinkin.

jekku

  • Käyttäjä
  • Viestejä: 2624
    • Profiili
Vs: Mysql salasana
« Vastaus #12 : 23.07.18 - klo:13.41 »
Asennuksen poisto-ohjelma voisi varmaankin ihan helposti poistaa myös tietokannat, mutta aavistelen ettei se olisi kovin toivottu "ominaisuus".
----

Totta tuo.  Mutta olen "aina" lähtenyt puhtaalta pohjalta ja hakenut datan varmuuskopioista.

Enpä ole koskaan kokeillut jos poistan tauluun mysql.user liittyvät tiedostot - luoko uudet?
Taidanpa kokeilla kun seuraavat varmistukset testattu - jos muistan ;)

Toistaiseksi olen käyttänyt MyISAM (tjsp.) formaattia ja mysqldumpin kopiot ovat kelvanneet kiltisti versiosta toiseen.

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11481
    • Profiili
    • Tomin kotisivut
Vs: Mysql salasana
« Vastaus #13 : 23.07.18 - klo:15.46 »
Ainakin nyky-Debianeissa tuo on hoidettu siten, että Mysql:n root-käyttäjälle ei,oletuksena laiteta salasanaa. Siihen pääsee käsiksi avaamalla asiakasohjelman (mysql) paikallisesti Linuxin root-käyttäjänä eli esim. sudolla)
.
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

jekku

  • Käyttäjä
  • Viestejä: 2624
    • Profiili
Vs: Mysql salasana
« Vastaus #14 : 23.07.18 - klo:18.40 »
Ainakin nyky-Debianeissa tuo on hoidettu siten, että Mysql:n root-käyttäjälle ei,oletuksena laiteta salasanaa. Siihen pääsee käsiksi avaamalla asiakasohjelman (mysql) paikallisesti Linuxin root-käyttäjänä eli esim. sudolla)
.

Töissä ollessani piti rootin salasana jakaa valituille kollegoille.

Ja kannan pääkäyttäjän salasana eri kollegoille. Nämä jotka halusivat/tarvitsivat täydet oikat kantaan, eivät halunneet samaa käyttistasolle.

Joten systemaattisesti asetin myös kanta-rootille salasanan. En jaksanut kokeilla kloonata täysiä oikeuksia jollekin "rinnakkaisrootille".
Käsikirjojen mukaan sekin olisi mahdollista, mutta jäi kokeilemati - laiskuus on (joskus) hyvä lahja, kuten isot pojat sanoovat.
 

retu

  • Käyttäjä
  • Viestejä: 949
    • Profiili
Vs: Mysql salasana
« Vastaus #15 : 23.07.18 - klo:18.50 »
Ei sitä mysql:ää tarvitse sudottaa. Käyttäjätunnuksen voi antaa parametrina.
Koodia: [Valitse]
mysql -u rootKun se sitten kysyy salasanaa, painetaan vain enteriä, jos salasana on tyhjä.

Mysql:n root käyttäjä on eri asia kuin linuxin root käyttäjä. Lisäksi käyttäjätunnukset ovat host-kohtaisia, joten siellä voi olla useampikin root-käyttäjä. Oletuksena tuon root@localhost salasana on tyhjä, mutta myös yhteys tietokantaan on blokattu muualta kuin localhost-osoitteesta.

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11481
    • Profiili
    • Tomin kotisivut
Vs: Mysql salasana
« Vastaus #16 : 23.07.18 - klo:23.58 »
Ei sitä mysql:ää tarvitse sudottaa. Käyttäjätunnuksen voi antaa parametrina.
Koodia: [Valitse]
mysql -u rootKun se sitten kysyy salasanaa, painetaan vain enteriä, jos salasana on tyhjä.

Onhan ne erilliset tunnukset, mutta tämmöistä tietoa itse noudatin, kun tuon viimeksi itse asentelin:
https://wiki.debian.org/MySql
Lainaus
Root Access and Adding Users

At least since Debian 9 "stretch," operating system credentials are used by MySQL Server to authenticate users. That is, after installing mysql-server and mysql-client you can access the server with root privileges by executing the following

Koodia: [Valitse]
su
mysql

or

Koodia: [Valitse]
sudo mysql

Kysyjälle tästä ei taida olla hyötyä.
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.