Làm thế nào để thiết lập lại hoặc thay đổi mật khẩu root MySQL?


179

Làm cách nào để thay đổi mật khẩu và tên người dùng gốc của MySQL trong máy chủ Ubuntu? Tôi có cần dừng dịch vụ mysql trước khi đặt bất kỳ thay đổi nào không?

Tôi cũng có một thiết lập phpmyadmin, liệu phpmyadmin có được cập nhật tự động không?


Nếu bạn không cần dữ liệu, bạn có thể "đặt lại" mật khẩu bằng cách xóa toàn bộ mysql: stackoverflow.com/questions/10853004/, sau đó cài đặt lại (nó sẽ nhắc bạn nhập mật khẩu gốc "mới") FWIW: )
rogerdpack

Bạn có biết mật khẩu root MySQL không?
Franck Dernoncourt

2
trong mysql-server-5.7 các phương thức này không hoạt động. sử dụng 'sudo' mà không cần mật khẩu như được đề cập trong Askubfox.com/a/848504
Pragalathan M

Câu trả lời:


225

Đặt / thay đổi / đặt lại mật khẩu gốc MySQL trên Ubuntu Linux. Nhập các dòng sau trong thiết bị đầu cuối của bạn.

  1. Dừng máy chủ MySQL: sudo /etc/init.d/mysql stop
  2. Bắt đầu mysqldcấu hình:sudo mysqld --skip-grant-tables &

    Trong một số trường hợp, bạn đã tạo cái /var/run/mysqldđầu tiên:

    sudo mkdir -v /var/run/mysqld && sudo chown mysql /var/run/mysqld
  3. Chạy: sudo service mysql start
  4. Đăng nhập vào MySQL với quyền root: mysql -u root mysql
  5. Thay thế YOURNEWPASSWORDbằng mật khẩu mới của bạn:

    UPDATE
      mysql.user
    SET
      Password = PASSWORD('YOURNEWPASSWORD')
    WHERE
      User = 'root';
    FLUSH PRIVILEGES;
    exit;

Lưu ý: trên một số phiên bản, nếu passwordcột không tồn tại, bạn có thể muốn thử:
UPDATE user SET authentication_string=password('YOURNEWPASSWORD') WHERE user='root';

Lưu ý: Phương pháp này không được coi là cách an toàn nhất để đặt lại mật khẩu, tuy nhiên, nó hoạt động.

Người giới thiệu:

  1. Đặt / Thay đổi / Đặt lại mật khẩu gốc MySQL trên Ubuntu Linux
  2. Cách đặt lại mật khẩu root

20
Tất nhiên, sau thời điểm này, bạn sẽ cần phải giết quy trình máy chủ tạm thời, không có mật khẩu mà bạn đã bắt đầu ở bước 2. có thể sử dụng sudo killall -9 mysqldkhông? và sau đó sudo service mysql startđể khởi động lại daemon bình thường ...
Lambart

7
Phương pháp trong câu trả lời này chỉ cần thiết để đặt lại mật khẩu gốc của MySQL mà bạn không biết [nguồn ]. Nếu bạn biết điều đó, SET PASSWORDhướng dẫn MySQL là dành cho bạn.
tanius

53
Tôi đã theo dõi đến bước thứ 3 và tôi 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) khi tôi đăng nhập root
Sushivam

12
trong một số trường hợp, bạn cũng cần chạy mkdir /var/run/mysqldchown mysql: /var/run/mysqldgiữa các bước 1 và 2
Neville Nazerane 2/218

9
Bước 3 không hoạt động với tôi với Ubuntu 18.04. Tôi vừa đăng nhập bằng sudo mysql
itols

120

Phương pháp duy nhất hiệu quả với tôi là phương pháp được mô tả ở đây (Tôi đang chạy Ubuntu 14.04). Để rõ ràng, đây là các bước tôi đã làm theo:

  1. sudo vim /etc/mysql/my.cnf
  2. Thêm các dòng sau vào cuối:

    [mysqld]
    
    bỏ qua cấp
  3. sudo service mysql restart

  4. mysql -u root

  5. use mysql

  6. select * from mysql.user where user = 'root';- Nhìn ở trên cùng để xác định xem cột mật khẩu được gọi là mật khẩu hay xác thực

  7. UPDATE mysql.user set *password_field from above* = PASSWORD('your_new_password') where user = 'root' and host = 'localhost'; - Sử dụng cột mật khẩu thích hợp từ phía trên

  8. FLUSH PRIVILEGES;

  9. exit

  10. sudo vim /etc/mysql/my.cnf

  11. Xóa các dòng được thêm vào trong bước 2 nếu bạn muốn giữ các tiêu chuẩn bảo mật của mình.

  12. sudo service mysql restart

Để tham khảo: https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html


8
Cuối cùng, điều này làm việc cho tôi! Tôi đang chạy MySQL 5.7.18 trên Ubuntu 16.04. Tôi đã thử dpkg-cấu hình lại, câu trả lời của Anvesh, câu trả lời của Christian Mark và thậm chí cả các hướng dẫn trên trang trợ giúp của MySQL.
mbuc91

9
Tôi đã phải chạy CẬP NHẬT mysql.user SET xác thực_ chuỗi = PASSWORD ('newpwd') WHERE User = 'root'; thay cho dòng 5.
mbuc91

2
Giải pháp duy nhất hiệu quả với tôi. Tôi có Ubuntu 17.04 và mysql 5.7
Mohamed

1
Đáng buồn là điều này không hoạt động đối với tôi mysql 5.7.22 trên Ubuntu 18.04
Mario

1
Mọi thứ đã hoạt động như mong đợi. Nhưng khi cố gắng đăng nhập, nó nói Nhập mật khẩu: ERROR 1698 (28000): Truy cập bị từ chối cho người dùng 'root' @ 'localhost'
Dipak Chatterjee

101

Cách chính thức và dễ dàng để đặt lại mật khẩu gốc trên máy chủ Ubuntu ...

Nếu bạn ở vào ngày 16.04, 14.04, 12.04:

sudo dpkg-reconfigure mysql-server-5.5

Nếu bạn ở vào ngày 10.04:

sudo dpkg-reconfigure mysql-server-5.1

Nếu bạn không chắc chắn phiên bản máy chủ mysql nào được cài đặt, bạn có thể thử:

dpkg --get-selections | grep mysql-server

Ghi chú cập nhật cho mysql-server-5.7

Lưu ý rằng nếu bạn đang sử dụng mysql-server-5.7, bạn không thể sử dụng phương pháp cấu hình lại dpkg dễ dàng hơn được hiển thị ở trên.

Nếu bạn biết mật khẩu, hãy đăng nhập và chạy nó:

UPDATE mysql.user SET authentication_string=PASSWORD('my-new-password') WHERE USER='root';
FLUSH PRIVILEGES;

Ngoài ra, bạn có thể sử dụng như sau:

sudo mysql_secure_installation

Điều này sẽ hỏi bạn một loạt các câu hỏi về bảo mật cài đặt của bạn (rất khuyến khích), bao gồm cả nếu bạn muốn cung cấp mật khẩu root mới.

Nếu bạn KHÔNG biết mật khẩu gốc, hãy tham khảo quy trình viết trung tâm Ubuntu này .

Xem để biết thêm thông tin:

https://help.ubfox.com/16.04/serverguide/mysql.html https://help.ubfox.com/14.04/serverguide/mysql.html


3
Hoạt động ngay cả khi bạn mất mật khẩu gốc MySQL gốc - tốt đẹp.
tanius

4
Hoạt động vớiVer 14.14 Distrib 5.5.38, for debian-linux-gnu
justinpage

Cũng đã làm việc với mysql v 5.0 ...sudo dpkg-reconfigure mysql-server-5.0
DSghi

4
sudo dpkg-cấu hình lại mysql-server-5.7 không hoạt động cho Ubuntu 18.04 để đặt lại mật khẩu gốc. Bất kỳ thay thế khác?
Jagdeep Singh

Ubuntu:sudo dpkg-reconfigure mysql-server-5.7; sudo mysql_secure_installation
kenorb

77

Điều gì làm việc cho tôi (Ubuntu 16.04, mysql 5.7):

Dừng MySQL

sudo service mysql stop

Tạo thư mục dịch vụ MySQL.

sudo mkdir /var/run/mysqld

Cấp quyền cho người dùng MySQL để ghi vào thư mục dịch vụ.

sudo chown mysql: /var/run/mysqld

Bắt đầu MySQL thủ công, không cần kiểm tra quyền hoặc kết nối mạng.

sudo mysqld_safe --skip-grant-tables --skip-networking &

Trên bảng điều khiển khác, đăng nhập mà không cần mật khẩu.

mysql -uroot mysql

Sau đó:

UPDATE mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';
EXIT;

Tắt MySQL.

sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

Bắt đầu dịch vụ MySQL bình thường.

sudo service mysql start

Các cách khác không hiệu quả với tôi nhưng cách này (cảm ơn!) Hoặc bạn cũng có thể truy cập vào đây rricketts.com/reset-root-password-mysql-5-7-ub Ubuntu
Dung

10
Rất hữu ích ! Trong trường hợp cụ thể của tôi (Ubuntu 18.04 LTS), tôi đã phải thay thế máy chủ '%' thành 'localhost'
FredericK

Điều này đã không hoạt động trong Ubuntu 18.04. Nhưng nó đã làm việc với sự thay đổi nhỏ này được mô tả ở đây stackoverflow.com/a/53385753/1591143
Aleksandar Popovic

76

Tôi đang chia sẻ từng bước giải pháp cuối cùng để thiết lập lại mật khẩu MySQL trong Linux Ubuntu.

Tham khảo lấy từ blog (dbrnd.com)

Bước 1: Dừng dịch vụ MySQL.

sudo stop mysql

Bước 2: Giết tất cả mysqld đang chạy.

sudo killall -9 mysqld

Bước 3: Bắt đầu mysqld ở chế độ An toàn.

sudo mysqld_safe --skip-grant-tables --skip-networking &

Bước 4: Khởi động máy khách mysql

mysql -u root

Bước 5: Sau khi đăng nhập thành công, vui lòng thực hiện lệnh này để thay đổi bất kỳ mật khẩu nào.

FLUSH PRIVILEGES;

Bước 6: Bạn có thể cập nhật mật khẩu root mysql.

UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';

Lưu ý : Trên MySQL 5.7, cột Passwordđược gọi authentication_string.

Bước 7: Hãy thực hiện lệnh này.

FLUSH PRIVILEGES;

Thật. Ngoài ra, nó là gần hơn với các tài liệu chính thức . Trong trường hợp bạn gặp phải vấn đề này: "ERROR 1524 (HY000): Plugin 'auth_socket' không được tải, hãy xem stackoverflow.com/questions/37879448/
trộm

Tôi cũng đã phải thay đổi mysql.user.plugin từ 'auth_socket' thành 'mysql_native_password' cho người dùng root của tôi với máy chủ của 'localhost'.
Brandon

1
Tôi đã phải sử dụng "sudo /etc/init.d/mysql stop" để dừng dịch vụ và "CẬP NHẬT mysql.user SET xác thực_ chuỗi = PASSWORD ('newpwd') WHERE User = 'root';" để cập nhật mật khẩu
L Bahr

1
xác thực _ chuỗi đã giúp
Faiyaz Md Abdul

42

Tôi gặp phải vấn đề với Ubuntu 18.04 và mysql 5.7, đây là giải pháp

Hãy thử khởi động lại máy chủ mysql trước khi thực hiện các lệnh

sudo service mysql restart

MYSQL-SERVER> = 5.7

sudo mysql -uroot -p
USE mysql;
UPDATE user SET authentication_string=PASSWORD('YOUR_PASSWORD') WHERE User='root';
UPDATE user SET plugin="mysql_native_password";
FLUSH PRIVILEGES;
quit;

MYSQL-SERVER <5.7

sudo mysql -uroot -p
USE mysql;
UPDATE user SET password=PASSWORD('YOUR_PASSWORD') WHERE User='root';
UPDATE user SET plugin="mysql_native_password";
FLUSH PRIVILEGES;
quit;

1
Cảm ơn, tôi cũng đang chạy Ubuntu 18.04 tại đây và MYSQL-SERVER >= 5.7phiên bản là thứ duy nhất thực sự giải quyết được vấn đề
Miguelgraz

1
Đây là cái đã hoạt động trong cài đặt mysql Ubuntu 18.04. MYSQL-SERVER >= 5.7phiên bản chính xác.
Sathish Manohar

34

Thay đổi mật khẩu root MySQL.

Phương thức này hiển thị mật khẩu cho lịch sử dòng lệnh, các lệnh này sẽ được chạy dưới dạng root.

  1. Đăng nhập thông qua công cụ dòng lệnh mysql:

    mysql -uroot -poldpassword
  2. Chạy lệnh này:

    SET PASSWORD FOR root@'localhost' = PASSWORD('newpassword');

hoặc là

  1. Chạy lệnh này, đặt mật khẩu cho người dùng hiện tại ('root' cho trường hợp này):

    THIẾT LẬP PASSWORD = PASSWORD ('mật khẩu mới');


25

Lúc đầu chạy lệnh này:

sudo mysql

và sau đó bạn nên kiểm tra phương thức xác thực nào trong tài khoản người dùng MySQL của mình. Vì vậy, hãy chạy lệnh này

SELECT user,authentication_string,plugin,host FROM mysql.user;

bây giờ bạn có thể thấy một cái gì đó như thế này rồi:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+

trong bảng ở trên, bạn có thể thấy rằng tất cả trạng thái tài khoản người dùng mysql của bạn & nếu bạn đã đặt mật khẩu cho tài khoản root trước khi bạn thấy mysql_native_passwordtrong cột plugin thay thế auth_socket. Tất cả trong tất cả để thay đổi mật khẩu gốc của bạn, bạn nên chạy:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Hãy chắc chắn để thay đổi mật khẩu thành một mật khẩu mạnh mà bạn chọn. Sau đó, để tải lại máy chủ của bạn để đưa các thay đổi mới của bạn có hiệu lực chạy này;

FLUSH PRIVILEGES;

Vì vậy, một lần nữa kiểm tra các phương thức xác thực được sử dụng bởi mysql của bạn, bằng lệnh này:

SELECT user,authentication_string,plugin,host FROM mysql.user;

và bây giờ đầu ra là:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *3636DACC8616D997782ADD0839F92C1571D6D78F | mysql_native_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+

như bạn có thể thấy trong bảng cấp tài khoản gốc của bạn có mysql_native_password . bây giờ bạn có thể thoát khỏi vỏ MYSQL

exit;

Đó là nó. Chỉ cần bạn khởi động lại mysql bằng cách sudo service mysql restart. Bây giờ bạn có thể đăng nhập vào mysql như một tài khoản root bằng mật khẩu của mình một cách dễ dàng.


Tôi nghĩ rằng đây là từ DigitalOcean, đây là giải pháp duy nhất hiệu quả với tôi trên Ubuntu 18.04 chạy trên Virtual Box
Kemal

Nó hoạt động hoàn hảo trong Ubuntu 18.04. Cảm ơn.
mahfuz

12

Nếu bạn muốn thay đổi mật khẩu gốc của MySQL, trong một thiết bị đầu cuối, hãy nhập:

sudo dpkg-reconfigure mysql-server-5.5

Trình nền của MySQL sẽ bị dừng và bạn sẽ được nhắc nhập mật khẩu mới.


1
Đây là một cách tốt hơn để làm điều đó. Tôi không thể chạy các lệnh trước đó vì một số lỗi mysql ...
Andy

sudo dpkg-cấu hình lại mysql-server-5.7 trên Ubuntu 16.04
Nick Barrett

2
Tôi đã chạy sudo dpkg-reconfigure mysql-server-5.7trên Ubuntu 16.04, nó không nhắc nhập mật khẩu mới.
Franck Dernoncourt

Nếu nó nói mysql-server is broken or not fully installed, người ta có thể sử dụng sudo apt purge mysql*sudo apt install mysql-server
Pavel

12

Điều này hoạt động như sự quyến rũ tôi đã làm nó cho Ubuntu 16.04. Tín dụng đầy đủ để liên kết dưới đây khi tôi nhận được nó từ đó. [ https://coderwall.com/p/j9btlg/reset-the-mysql-5-7-root-password-in-ubfox-16-04-lts[[1]

Dừng MySQL

sudo service mysql stop

Tạo thư mục dịch vụ MySQL. sudo mkdir / var / run / mysqld

Cấp quyền cho người dùng MySQL để ghi vào thư mục dịch vụ.

sudo chown mysql: /var/run/mysqld

Bắt đầu MySQL thủ công, không cần kiểm tra quyền hoặc kết nối mạng.

sudo mysqld_safe --skip-grant-tables --skip-networking &

Đăng nhập mà không cần mật khẩu.

mysql -uroot mysql

Cập nhật mật khẩu cho người dùng root. đảm bảo tài khoản root ít nhất được cập nhật bằng truy vấn bên dưới. thực hiện một số lựa chọn và kiểm tra các giá trị hiện có nếu bạn muốn

UPDATE mysql.user SET 
authentication_string=PASSWORD('YOURNEWPASSWORD'), 
plugin='mysql_native_password' WHERE User='root';
EXIT;

Tắt MySQL.

sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

Bắt đầu dịch vụ MySQL bình thường.

sudo service mysql start

11
  1. Dừng dịch vụ sudo MySQL dừng mysql

  2. Tạo thư mục dịch vụ MySQL. sudo mkdir / var / run / mysqld

  3. Cấp quyền cho người dùng MySQL để ghi vào thư mục dịch vụ. sudo chown mysql: / var / run / mysqld

  4. Bắt đầu MySQL thủ công, không cần kiểm tra quyền hoặc kết nối mạng. sudo mysqld_safe --skip-Grant-bảng --skip-mạng &

5. Đăng nhập mà không cần mật khẩu. mys -uroot mysql

6. Cập nhật mật khẩu cho người dùng root.

CẬP NHẬT mysql.user SET xác thực_ chuỗi = PASSWORD ('YourNEWPASSWORD'), plugin = 'mysql_native_password' WHERE User = 'root' AND Host = '%'; LỐI RA;

  1. Tắt MySQL. sudo mysqladmin -S /var/run/mysqld/mysqld.sock tắt máy

  2. Bắt đầu dịch vụ MySQL bình thường. dịch vụ sudo mysql bắt đầu


1
Xin chào, câu trả lời này có hiệu quả với tôi, nhưng tôi phải sử dụng một lệnh khác: UPDATE mysql.user SET authentication_string=PASSWORD('solutionclub3@*^G'), plugin='mysql_native_password' WHERE User='root';không có AND Host='%'. Cảm ơn!
David Corral

10

Giải pháp này thuộc về phiên bản trước của MySQL. Bằng cách đăng nhập vào MySQL bằng xác thực ổ cắm, bạn có thể làm điều đó.

sudo mysql -u root

Sau đó, lệnh sau có thể được chạy.

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Thông tin chi tiết có sẵn ở đây .


1
Tôi không thể đăng nhập sudo mysql -u rootnhưng tôi đã có thể làm điều đó sudo mysqlvà chạy ALTER USERlệnh.
itols

Tôi đã nhận được lỗi này: "Mật khẩu của bạn không đáp ứng các yêu cầu chính sách hiện tại". Tôi đã có thể sửa lỗi này tại đây: stackoverflow.com/a/43094873/9073437 . Sau khi thiết lập một chính sách mật khẩu sửa đổi, mọi thứ đều hoạt động tốt.
Grandtour

10

Đây là giải pháp cho tôi. Tôi làm việc tại Ubuntu 18.04: https://stackoverflow.com/a/46076838/2400373

Nhưng điều quan trọng là sự thay đổi này trong bước cuối cùng:

UPDATE mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost'; 

Trời ạ! Cảm ơn rất nhiều! Đây là cách duy nhất đã làm việc trong trường hợp của tôi. Hãy quên đi tập lệnh cài đặt bảo mật ngu ngốc đó vì nó vẫn mở rộng 5,7 cho người dùng mà không cần hỏi mật khẩu ... nếu Linux / Ubuntu dành cho người dùng nhận biết an toàn thì tại sao việc bảo vệ một ứng dụng quan trọng như máy chủ MySQL lại khó khăn đến vậy ?
Thomas Urban

7

Đối với Ubuntu 18.04 và phiên bản mysql 14,14 Phân phối 5.7,22, hãy làm theo bước dưới đây để đặt lại mật khẩu mysql.

Bước 1

sudo systemctl stop mysql

Bước 2

sudo systemctl edit mysql

Lệnh này sẽ mở một tệp mới trong trình soạn thảo nano, mà bạn sẽ sử dụng để chỉnh sửa phần ghi đè dịch vụ của MySQL. Chúng thay đổi các tham số dịch vụ mặc định cho MySQL. Tập tin này sẽ trống, vì vậy hãy thêm nội dung sau:

[Service]
ExecStart=
ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid --skip-grant-tables --skip-networking

Bước 3

sudo systemctl daemon-reload
sudo systemctl start mysql

Bước 4

sudo mysql -u root

Bước 5

FLUSH PRIVILEGES;

Bước 6

UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHEREuser = 'root';

Bước 7

UPDATE mysql.user SET plugin ='mysql_native_password' WHERE user = 'root';

Bước 8

sudo systemctl revert mysql

và cuối cùng

sudo systemctl restart mysql

Bây giờ hãy tận hưởng


Tôi nghĩ bạn đã bỏ lỡ nội dung ở bước 2. Nó không đầy đủ.
Lucas Mendes Mota Da Fonseca

6

Báo lại nhận xét của rogerdpack: nếu bạn không biết mật khẩu gốc của MySQL và bạn không quan tâm đến dữ liệu / cài đặt của MySQL, bạn có thể cài đặt lại và đặt lại mật khẩu của root như sau:

sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo rm -rf /var/lib/mysql
sudo apt-get install -y mysql-server mysql-client 

Trong quá trình cài đặt, bạn có thể chọn mật khẩu của root:

nhập mô tả hình ảnh ở đây


2
Tôi ước tôi đã bắt đầu ở đây thay vì lãng phí một giờ đập đầu vào việc cố gắng thiết lập lại mật khẩu.
Eric Seastrand

3

Nếu bạn biết mật khẩu hiện tại của mình, bạn không phải dừng máy chủ mysql. Mở thiết bị đầu cuối Ubuntu. Đăng nhập vào mysql bằng cách sử dụng:

mysql - username -p

Sau đó nhập mật khẩu của bạn. Điều này sẽ đưa bạn vào giao diện điều khiển mysql. Trong bảng điều khiển, gõ:

> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

Sau đó, xóa đặc quyền bằng cách sử dụng:

> flush privileges;

Thế là xong.


2

Khi bạn sử dụng MySQL PASSWORD()trên hệ thống mà bạn muốn thay đổi mật khẩu, nó có thể khiến mật khẩu bật lên trong nhật ký MySQL trong tệp tin rõ ràng [ nguồn ]. Giữ chúng, sao lưu của họ, vv an toàn như mật khẩu nghe có vẻ như ác mộng đối với tôi, vì vậy tôi thích làm điều đó như sau:

  1. Trên máy cục bộ của bạn , hãy chạy mã này với mật khẩu của bạn:

     mysql -u someuser -p < <(echo "SELECT PASSWORD('mypass');")

    Lưu ý không gian phía trước để ngăn không cho nó xuất hiện trong lịch sử bash (đối với các bản phát hành khác ngoài Ubuntu, điều này có thể hoạt động khác - nguồn ).

  2. Trên máy chủ của bạn, thực hiện lệnh sau để thay đổi mật khẩu gốc MySQL của nó (thay thế myhashbằng hàm băm mật khẩu của bạn như được in bằng lệnh đầu tiên):

    mysql -u root -p < <(echo "SET PASSWORD FOR root@localhost = 'myhash';")
  3. Tùy chọn, hãy để một chút hoang tưởng: Trên máy cục bộ của bạn, xóa màn hình thiết bị đầu cuối của bạn clearvà xóa sạch cuộn ngược thiết bị ảo của bạn, để ẩn mật khẩu Cleartext xuất hiện trong lệnh trên.


2

Để cập nhật mật khẩu người dùng "root" Mysql, bạn phải nhớ rằng bạn sẽ cần quyền siêu người dùng cho điều đó. Nếu bạn có đặc quyền siêu người dùng, hãy thử các lệnh sau:

MySQL 5.7.6 trở lên

sudo su
service mysql stop
mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
\q;
exit
mysql -u root -p MyNewPass

MySQL 5.7.5 trở về trước

sudo su
service mysql stop
mysql -u root
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
\q;
exit
mysql -u root -p MyNewPass

2

Bạn không cần tất cả điều này. Chỉ cần đăng nhập:

mysql -u root -p

Sau đó thay đổi mật khẩu của người dùng hiện tại như mysql>lời nhắc:

mysql> set password=password('the_new_password');
mysql> flush privileges;

1
Đây là một cách đơn giản nhất! Nó hoạt động với tôi với mysql 5.7.21-0ubfox0.17.10.1
Sergio Belevskij

2

Hầu hết các câu trả lời về chủ đề này đã lỗi thời; Hai thay đổi lớn đã xảy ra trong MySQL cho đến khi viết câu trả lời này:

1- trường 'Mật khẩu' trong bảng người dùng đã được thay thế bằng cột 'xác thực_ chuỗi'.

2- chức năng mã hóa 'Mật khẩu': PASSWORD ("của một số văn bản") không được dùng nữa.

Vui lòng tham khảo liên kết này để biết thêm thông tin: dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html


1

Thay vì đặt lại mật khẩu, có một công việc xung quanh máy cục bộ nếu bạn đã thiết lập phpmyadminđể kết nối mà không cung cấp mật khẩu hoặc tên người dùng. Kiểm tra điều này bằng cách bắt đầu mysql, apachevv Tôi đã xamppcài đặt trong máy cục bộ của mình. Vì vậy, bắt đầu xampp sẽ bắt đầu tất cả các dịch vụ cần thiết. Bây giờ sẽ http://localhost/phpmyadmincho tôi thấy tất cả các cơ sở dữ liệu. Điều này xác nhận rằng bạn đã lưu tên người dùng và mật khẩu trong tệp cấu hình của phpmyadmin có thể tìm thấy trong phpmyadminvị trí cài đặt. Nếu bạn đã xamppcài đặt phpmyadminthư mục có thể được tìm thấy trong thư mục gốc của xamppcài đặt. Tìm kiếm từ passwordtrong config.inc.phptập tin. Ở đó bạn sẽ tìm thấy passwordusername.


1

Bạn có thể dễ dàng thay đổi mật khẩu mysql nếu được triển khai trên xampp thông qua gui được cung cấp.

phpMyAdmin -> User Accounts -> Edit Privileges (Select the intended user) -> Change Password (Tab)

1

đối với mysql 5.6 lệnh này hoạt động và bạn có thể đặt mật khẩu thông qua trình hướng dẫn:

sudo dpkg-reconfigure mysql-server-5.6

Tôi đã thử nhưng nó không hoạt động .. Tôi nhận được lỗi dưới đây .. bạn có thể vui lòng giúp đỡ không? Quá trình cài đặt MySQL này đã được nâng cấp lên 5.7,21, hãy sử dụng - Force nếu bạn vẫn cần chạy mysql_upTHER
Vijaysinh Parmar 23/03/18

1

Bạn có thể thử một số bước sau để thiết lập lại mật khẩu gốc mysql 5.7:

Dừng dịch vụ Mysql 1

sudo /etc/init.d/mysql stop 

Đăng nhập bằng root mà không cần mật khẩu sudo mysqld_safe --skip-grant-tables&

Sau khi đăng nhập thiết bị đầu cuối mysql, bạn sẽ cần thực thi các lệnh nhiều hơn:

use mysql;




UPDATE mysql.user SET authentication_string=PASSWORD('solutionclub3@*^G'), plugin='mysql_native_password' WHERE User='root';


flush privileges;


sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

Sau khi bạn khởi động lại máy chủ mysql Nếu bạn vẫn gặp phải lỗi, bạn phải truy cập: Đặt lại mật khẩu gốc MySQL 5.7 Ubuntu 16.04


1

Bạn có thể sử dụng lệnh này:

UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';

sau đó xin vui lòng sử dụng tuôn ra:

FLUSH PRIVILEGES;

1

Đặt mật khẩu MySQL

  1. dừng dịch vụ cơ sở dữ liệu MySQL

sudo /etc/init.d/mysql dừng

  1. tạo một thư mục mysqld mới

sudo mkdir / var / run / mysqld /

  1. cấp quyền truy cập cho người dùng mysql

sudo chown mysql / var / run / mysqld /

  1. khởi động MySQL ở chế độ an toàn ...

sudo mysqld_safe --skip-Grant-bảng &

  1. đăng nhập vào máy chủ cơ sở dữ liệu mà không cần mật khẩu

sudo mysql -u root

  1. sử dụng cơ sở dữ liệu mysql mặc định

sử dụng mysql;

  1. thay đổi mật khẩu root

update user set authentication_string=PASSWORD("New_Passwore_Here") where Người dùng = 'root';

  1. Lưu các thay đổi

    đặc quyền tuôn ra; lối ra;

  2. dừng MySQL safe_mode và bắt đầu dịch vụ mặc định của MySQL

sudo /etc/init.d/mysql dừng

sudo /etc/init.d/mysql bắt đầu

  1. đăng nhập lại vào cơ sở dữ liệu MySQL bằng mật khẩu mới

sudo mysql -u root -p

*** Nguồn: https://websiteforstudents.com/resetting-mysql-root-password-on-ubfox-16-04-17-10-and-18-04-lts/


1

Nếu bạn biết mật khẩu người dùng 'root', hãy đăng nhập vào mysql bằng thông tin đăng nhập đó. Sau đó thực hiện các truy vấn sau để cập nhật mật khẩu.

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_passowrd';

0

khi thay đổi / đặt lại mật khẩu MySQL, các lệnh sau được liệt kê ở trên không có ích. Tôi thấy rằng đi vào thiết bị đầu cuối và sử dụng các lệnh này là vô nghĩa. thay vào đó sử dụng lệnh sudo dừng mọi thứ. XÓA HỆ THỐNG 32 cho các cửa sổ nếu điều đó giúp.


1
Câu hỏi là về ubuntuhệ điều hành chứ không phải windows. Bạn có ý nghĩa gì khi XÓA HỆ THỐNG 32 cho các cửa sổ ?
EhsanT

0

Để đặt lại hoặc thay đổi mật khẩu nhập sudo dpkg-reconfigure mysql-server-X.X(XX là phiên bản mysql bạn đã cài đặt tức là 5.6, 5.7) và sau đó bạn sẽ nhắc màn hình nơi bạn phải đặt mật khẩu mới và sau đó trong bước tiếp theo xác nhận mật khẩu và chỉ cần chờ trong giây lát. Đó là nó.


0

Tôi đã phải đi tuyến đường này trên Ubuntu 16.04.1 LTS. Nó là một phần của sự kết hợp của một số câu trả lời khác ở trên - nhưng không ai trong số họ giúp đỡ. Tôi đã dành một giờ hoặc hơn để thử tất cả các đề xuất khác từ trang web MySql cho tất cả mọi thứ trên SO, cuối cùng tôi đã làm cho nó hoạt động với:

Lưu ý: trong khi nó hiển thị Nhập mật khẩu cho người dùng root, tôi không có mật khẩu gốc nên tôi chỉ nhập cùng một mật khẩu được sử dụng làm mật khẩu mới.

Lưu ý: không có /var/log/mysqld.log chỉ /var/log/mysql/error.log

Cũng lưu ý rằng điều này không hiệu quả với tôi:
sudo dpkg-reconfigure mysql-server-5.7

Cũng không:
sudo dpkg-reconfigure --force mysql-server-5.5

Tạo thư mục dịch vụ MySQL.
sudo mkdir /var/run/mysqld

Cấp quyền cho người dùng MySQL để ghi vào thư mục dịch vụ.
sudo chown mysql: /var/run/mysqld

Sau đó:

  1. giết pid mysqld hiện tại
  2. chạy mysqld với sudo / usr / sbin / mysqld &
  3. run / usr / bin / mysql_secure_installation

    Kết quả đầu ra từ mysql_secure_installation

    root @ myServer: ~ # / usr / bin / mysql_secure_installation

    Đảm bảo việc triển khai máy chủ MySQL.

    Nhập mật khẩu cho người dùng root:

    Có thể sử dụng PASSWORD PLUGIN để kiểm tra mật khẩu và cải thiện bảo mật. Nó kiểm tra độ mạnh của mật khẩu và cho phép người dùng chỉ đặt những mật khẩu đủ an toàn. Bạn có muốn thiết lập plugin VALIDATE PASSWORD không?

    Nhấn y | Y cho Có, bất kỳ phím nào khác cho Không: không Sử dụng mật khẩu hiện có để root. Thay đổi mật khẩu cho root? ((Nhấn y | Y cho Có, bất kỳ phím nào khác cho Không): y

    Mật khẩu mới:

    Nhập lại mật khẩu mới: Theo mặc định, cài đặt MySQL có người dùng ẩn danh, cho phép mọi người đăng nhập vào MySQL mà không cần phải tạo tài khoản người dùng cho họ. Điều này chỉ dành cho thử nghiệm và để cài đặt suôn sẻ hơn một chút. Bạn nên loại bỏ chúng trước khi chuyển sang môi trường sản xuất.

    Xóa người dùng ẩn danh? (Nhấn y | Y cho Có, bất kỳ phím nào khác cho Không): y Thành công.

    Thông thường, root chỉ nên được phép kết nối từ 'localhost'. Điều này đảm bảo rằng ai đó không thể đoán mật khẩu gốc từ mạng.

    Không cho phép đăng nhập root từ xa? (Nhấn y | Y cho Có, bất kỳ phím nào khác cho Không): y Thành công.

    Theo mặc định, MySQL đi kèm với một cơ sở dữ liệu có tên 'test' mà bất kỳ ai cũng có thể truy cập. Điều này cũng chỉ nhằm mục đích thử nghiệm và nên được gỡ bỏ trước khi chuyển sang môi trường sản xuất.

    Xóa cơ sở dữ liệu kiểm tra và truy cập vào nó? (Nhấn y | Y cho Có, bất kỳ phím nào khác cho Không): y

    • Bỏ cơ sở dữ liệu kiểm tra ... Thành công.

    • Xóa đặc quyền trên cơ sở dữ liệu thử nghiệm ... Thành công.

    Tải lại các bảng đặc quyền sẽ đảm bảo rằng tất cả các thay đổi được thực hiện cho đến nay sẽ có hiệu lực ngay lập tức.

    Tải lại bảng đặc quyền bây giờ? (Nhấn y | Y cho Có, bất kỳ phím nào khác cho Không): y Thành công.

    Tất cả đã được làm xong!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.