Μόλις εγκατέστησα τη MySQL σε Mac OS X. Το επόμενο βήμα ήταν ο καθορισμός του κωδικού πρόσβασης του χρήστη root, οπότε έκανα αυτό στη συνέχεια:
Εκκινήστε την εφαρμογή terminal για να αποκτήσετε πρόσβαση στη γραμμή εντολών του Unix.
Κάτω από την προτροπή Unix εκτέλεσα τις εξής εντολές:
$ cd /usr/local/mysql/bin
$ ./mysqladmin -u root password 'password',
Όμως, όταν εκτελώ την εντολή
$ ./mysql -u root
, αυτή είναι η απάντηση:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 224
Server version: 5.5.13 MySQL Community Server (GPL)
Copyright (c) 2000, 2010, 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>
Μπορώ να μπω στη γραμμή εντολών mysql
χωρίς κανένα κωδικό πρόσβασης!
Γιατί συμβαίνει αυτό;
Δοκιμάστε την εντολή FLUSH PRIVILEGES
όταν συνδέεστε στο τερματικό της MySQL. Αν αυτό δεν δουλέψει, δοκιμάστε την ακόλουθη σειρά εντολών ενώ βρίσκεστε στο τερματικό της MySQL
$ mysql -u root
mysql> USE mysql;
mysql> UPDATE user SET password=PASSWORD("NEWPASSWORD") WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> quit
Αλλάξτε το NEWPASSWORD με όποιον κωδικό πρόσβασης θέλετε. Θα πρέπει να είναι όλα έτοιμα!
Ενημέρωση: Το πεδίο password
έχει μετονομαστεί σε authentication_string
. Όταν αλλάζετε τον κωδικό πρόσβασης, χρησιμοποιήστε το ακόλουθο ερώτημα για να αλλάξετε τον κωδικό πρόσβασης. Όλες οι άλλες εντολές παραμένουν οι ίδιες:
mysql> UPDATE user SET authentication_string=PASSWORD("NEWPASSWORD") WHERE User='root';
Ενημέρωση: (ίσως και πριν από αυτή την έκδοση) η συνάρτηση PASSWORD() δεν λειτουργεί, όπως αναφέρεται στα σχόλια παρακάτω. Πρέπει να χρησιμοποιήσετε:
UPDATE mysql.user SET authentication_string='password' WHERE User='root';
Αν δεν θυμάστε τον κωδικό πρόσβασης που ορίσατε για το root και πρέπει να τον επαναφέρετε, ακολουθήστε τα παρακάτω βήματα:
sudo mysqld_safe --skip-grant-tables;
mysql -u root
Για MySQL παλαιότερη από τη MySQL 5.7 χρησιμοποιήστε:
UPDATE mysql.user SET Password=PASSWORD('your-password') WHERE User='root';
Για την MySQL 5.7+ χρησιμοποιήστε:
USE mysql;
UPDATE mysql.user SET authentication_string=PASSWORD("your-password") WHERE User='root';
Ανανεώστε και τερματίστε:
FLUSH PRIVILEGES;
\q
Μόλις εγκαταστήσετε τη MySQL, θα πρέπει να δημιουργήσετε τον κωδικό πρόσβασης "root". Εάν δεν δημιουργήσετε κωδικό πρόσβασης root, τότε, λοιπόν, δεν υπάρχει κωδικός πρόσβασης root και δεν χρειάζεστε κωδικό πρόσβασης για να συνδεθείτε.
Έτσι, με αυτό το δεδομένο, πρέπει να καθιερώσετε έναν κωδικό πρόσβασης root.
Χρησιμοποιώντας το τερματικό πληκτρολογήστε τα εξής:
/usr/local/mysql/bin/mysqladmin -u root password NEW_PASSWORD_HERE
Αν κάνατε κάποιο λάθος, ή πρέπει να αλλάξετε τον κωδικό πρόσβασης root χρησιμοποιήστε τα ακόλουθα:
cd /usr/local/mysql/bin/
./mysql -u root -p
> Enter password: [type old password invisibly]
use mysql;
update user set password=PASSWORD("NEW_PASSWORD_HERE") where User='root';
flush privileges;
quit