Tôi không thể tìm ra mật khẩu root MySQL của mình; Làm thế nào tôi có thể tìm ra điều này? Có tập tin nào mà mật khẩu này được lưu trữ không?
Tôi đang theo liên kết này nhưng tôi không có thư mục directadmin tại địa phương.
Tôi không thể tìm ra mật khẩu root MySQL của mình; Làm thế nào tôi có thể tìm ra điều này? Có tập tin nào mà mật khẩu này được lưu trữ không?
Tôi đang theo liên kết này nhưng tôi không có thư mục directadmin tại địa phương.
Câu trả lời:
nhờ @thusharaK tôi có thể đặt lại mật khẩu root mà không cần biết mật khẩu cũ.
Trên Ubuntu tôi đã làm như sau:
sudo service mysql stop
sudo mysqld_safe --skip-grant-tables --skip-syslog --skip-networking
Sau đó chạy mysql trong một thiết bị đầu cuối mới:
mysql -u root
Và chạy các truy vấn sau để thay đổi mật khẩu:
UPDATE mysql.user SET authentication_string=PASSWORD('password') WHERE User='root';
FLUSH PRIVILEGES;
Trong MySQL 5.7, trường mật khẩu trong trường bảng mysql.user đã bị xóa, bây giờ tên trường là 'verify_ chuỗi'.
Thoát khỏi chế độ an toàn mysql và bắt đầu dịch vụ mysql bằng cách:
mysqladmin shutdown
sudo service mysql start
mysqladmin -u root -p shutdown
, với mật khẩu mới.
mysql -u root
. Nó hiển thị lỗiAccess denied
Bạn không thể xem mật khẩu băm; điều duy nhất bạn có thể làm là thiết lập lại nó!
Dừng MySQL:
sudo service mysql stop
hoặc là
$ sudo /usr/local/mysql/support-files/mysql.server stop
Khởi động nó ở chế độ an toàn:
$ sudo mysqld_safe --skip-grant-tables
(dòng trên là toàn bộ lệnh)
Đây sẽ là một lệnh đang diễn ra cho đến khi quá trình kết thúc, vì vậy hãy mở một cửa sổ shell / terminal khác, đăng nhập mà không cần mật khẩu:
$ mysql -u root
mysql> UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';
MySQL 5.7 trở lên:
mysql> use mysql;
mysql> update user set authentication_string=password('password') where user='root';
Bắt đầu MySQL:
sudo mysql start
hoặc là
sudo /usr/local/mysql/support-files/mysql.server start
Mật khẩu mới của bạn là 'mật khẩu'.
mysql_secure_installation
và root đã không còn hợp tác. Các authentication_string
thiết lập làm gì?
mysqladmin -u root -p shutdown
với mật khẩu mới sau đósudo service mysql start
MySQL 5.7 trở lên lưu root trong tệp nhật ký MySQL.
Vui lòng thử điều này:
sudo grep 'temporary password' /var/log/mysqld.log
/var/log/mysql/error.log
có một cảnh báo về mật khẩu gốc bị trống - vì vậy loại này đã lưu trong ngày của tôi :)
một điều làm tôi vấp phải một bản cài đặt mới của myQuery và tự hỏi tại sao tôi không thể lấy mật khẩu mặc định để hoạt động và tại sao ngay cả các phương thức thiết lập lại không hoạt động. cũng chỉ ra rằng trên Ubuntu 18 phiên bản mới nhất của máy chủ mysql hoàn toàn không sử dụng mật khẩu auth cho người dùng root. Vì vậy, điều này có nghĩa là không quan trọng bạn cài đặt cái gì, nó sẽ không cho phép bạn sử dụng nó. nó hy vọng bạn đăng nhập từ một ổ cắm đặc quyền. vì thế
mysql -u root -p
hoàn toàn không hoạt động, ngay cả khi bạn đang sử dụng đúng mật khẩu !!! nó sẽ từ chối truy cập bất kể bạn đặt cái gì vào.
Thay vào đó bạn cần sử dụng
sudo mysql
Nó sẽ làm việc với bất kỳ mật khẩu. sau đó một khi bạn vào bạn cần gõ
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Password you want to use';
sau đó đăng xuất và bây giờ điều đẫm máu cuối cùng sẽ chấp nhận mật khẩu của bạn
Bạn không thể tìm thấy nó. Nó được lưu trữ trong cơ sở dữ liệu mà bạn cần mật khẩu gốc để truy cập và ngay cả khi bạn đã có quyền truy cập bằng cách nào đó, nó vẫn được băm bằng hàm băm một chiều. Bạn có thể đặt lại nó: http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html
Thực hiện theo các bước sau để đặt lại mật khẩu trong hệ thống Windows
Dừng dịch vụ Mysql từ trình quản lý tác vụ
Tạo một tệp văn bản và dán câu lệnh dưới đây
MySQL 5.7.5 trở về trước:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yournewpassword');
MySQL 5.7.6 trở lên:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'yournewpassword';
Lưu như mysql-init.txt
và đặt nó vào 'C' drive
.
Mở dấu nhắc lệnh và dán như sau
C:\> mysqld --init-file=C:\\mysql-init.txt
mysqld --init-file=/root/m.txt
. Tôi đã thêm lệnh trên SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yournewpassword');
vào /root/m.txt
Trừ khi người quản lý gói yêu cầu bạn nhập mật khẩu gốc trong khi cài đặt, mật khẩu gốc mặc định là chuỗi trống. Để kết nối với máy chủ mới cài đặt, gõ:
shell> mysql -u root --password=
mysql>
Để thay đổi mật khẩu, hãy lấy lại shell unix và gõ:
shell> mysqladmin -u root --password= password root
Mật khẩu mới là 'root'. Bây giờ kết nối với máy chủ:
shell> mysql -u root --password=
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Rất tiếc, mật khẩu đã thay đổi. Sử dụng cái mới , root
:
shell> mysql -u root --password=root
...
blah, blah, blah : mysql welcome banner
...
mysql>
Chơi lô tô! Mới làm một cái gì đó thú vị
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)
Maurycy
Ngoài các câu trả lời khác, trong bản cài đặt cpanel, mật khẩu gốc mysql được lưu trữ trong một tệp có tên /root/.my.cnf
. (và dịch vụ cpanel đặt lại thay đổi, vì vậy các câu trả lời khác ở đây sẽ không giúp ích)
bạn có thể xem mật khẩu root mysql, tôi cũng đã thử nó trên mysql 5.5 vì vậy không biết về phiên bản mới khác có hoạt động tốt hay không
nano ~/.my.cnf
Điều này làm việc cho tôi:
Trên thiết bị đầu cuối loại như sau
$ sudo mysql -u root -p
Nhập mật khẩu: // chỉ cần nhấn enter
mys>
Mật khẩu mặc định hoạt động với tôi sau khi cài đặt ngay lập tức máy chủ mysql là: mysql
Quy trình thay đổi tùy thuộc vào phiên bản MySql. Thực hiện theo quy trình chính xác như được mô tả cho phiên bản của bạn:
HINTS - Đọc trước trang hướng dẫn cho phiên bản MySql của bạn *
Trong bước 5: Thay vì chạy CMD, hãy tạo một lối tắt trên máy tính để bàn của bạn gọi CDM.exe. Sau đó nhấp chuột phải vào phím tắt và chọn "Thực thi với tư cách Quản trị viên".
Trong bước 6: Bỏ qua phiên bản đề xuất đầu tiên của lệnh và thực thi lệnh thứ hai, phiên bản có tham số --defaults-file
Khi bạn thực thi lệnh, nếu mọi thứ đều ổn, cửa sổ CMD vẫn mở và lệnh của bước 6 tiếp tục thực thi. Chỉ cần đóng cửa sổ (bấm 'x'), rồi buộc đóng MySQl từ Trình quản lý tác vụ.
Xóa tệp bằng các lệnh SQL và bắt đầu lại MySQL. Mật khẩu phải được thay đổi ngay bây giờ.
5.0 http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html
5.1 http://dev.mysql.com/doc/refman/5.1/en/resetting-permissions.html
... chỉ cần thay đổi phiên bản trong liên kết (5.5, 5.6, 5.7)
Trong tệp .err "tên máy chủ" trong thư mục dữ liệu MySQL hoạt động, hãy thử tìm một chuỗi bắt đầu bằng:
"Mật khẩu tạm thời được tạo cho roor @ localhost"
bạn có thể dùng
less /mysql/data/dir/hostname.err
sau đó gạch chéo lệnh theo sau chuỗi bạn muốn tìm
/"A temporary password"
Sau đó nhấn n, để đi đến kết quả tiếp theo.
Các câu trả lời được cung cấp ở đây dường như không hiệu quả đối với tôi, mẹo hóa ra là: THAY ĐỔI 'root' @ 'localhost' được xác định với mysql_native_password BY 'test';
(câu trả lời đầy đủ tại đây: https://www.percona.com/blog/2016/03/16/change-user-password-in-mysql-5-7-with-plugin-auth_socket/ )
Hệ thống:
Thủ tục:
Mở hai phiên shell, đăng nhập vào một với tư cách là người dùng root Linux và người còn lại là người dùng nonroot có quyền truy cập vào mysql
lệnh.
Trong phiên gốc của bạn, hãy dừng trình nghe mysqld bình thường và khởi động trình nghe mà bỏ qua xác thực mật khẩu ( lưu ý: đây là một rủi ro bảo mật đáng kể vì bất kỳ ai có quyền truy cập vào mysql
lệnh đều có thể truy cập cơ sở dữ liệu của bạn mà không cần mật khẩu. và / hoặc vô hiệu hóa quyền truy cập shell trước khi thực hiện việc này):
# systemctl stop mysqld
# /usr/sbin/mysqld --skip-grant-tables -u mysql &
Trong phiên nonroot của bạn, đăng nhập vào mysql và đặt mật khẩu gốc mysql:
$ mysql
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql> quit;
Trong phiên gốc của bạn, tiêu diệt phiên bản không mật khẩu của mysqld và khôi phục trình nghe mysqld bình thường về dịch vụ:
# kill %1
# systemctl start mysqld
Trong phiên nonroot của bạn, hãy kiểm tra mật khẩu root mới mà bạn đã cấu hình ở trên:
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
...
mysql>
Tôi đã giải quyết điều này theo một cách khác, điều này có thể dễ dàng hơn đối với một số người.
Tôi đã làm theo cách này vì tôi đã thử bắt đầu ở chế độ an toàn nhưng không thể kết nối với lỗi: ERROR 2002 (HY000): Không thể kết nối với máy chủ MySQL cục bộ thông qua socket '/var/run/mysqld/mysqld.sock' (2)
Những gì tôi đã làm là kết nối bình thường như root:
$ sudo mysql -u root
Sau đó, tôi đã tạo một siêu người dùng mới:
mysql> grant all privileges on *.* to 'myuser'@'%' identified by 'mypassword' with grant option;
mysql> quit
Sau đó đăng nhập với tư cách là người dùng của tôi
$ mysql -u myuser -p -h localhost
Cố gắng thay đổi mật khẩu không cho tôi lỗi nhưng không làm gì cho tôi nên tôi đã bỏ và tạo lại người dùng root
mysql> drop user 'root'@'localhost;
mysql> mysql> grant all privileges on *.* to 'root'@'localhost' identified by 'mypassword' with grant option;
Người dùng root hiện đang làm việc với mật khẩu mới
Truy cập phpMyAdmin> config.inc.php> $ cfg ['Máy chủ'] [$ i] ['password'] = '';
phpmyadmin
.