Khi tôi sử dụng mã mysqld_safe --skip-grant-tables &
nhưng tôi gặp lỗi:
mysqld_safe Directory '/ var / run / mysqld' cho tệp ổ cắm UNIX không tồn tại.
$ systemctl stop mysql.service
$ ps -eaf|grep mysql
$ mysqld_safe --skip-grant-tables &
Tôi đã giải quyết:
$ mkdir -p /var/run/mysqld
$ chown mysql:mysql /var/run/mysqld
Bây giờ tôi sử dụng cùng một mã mysqld_safe --skip-grant-tables &
và nhận được
mysqld_safe Bắt đầu trình nền mysqld với cơ sở dữ liệu từ / var / lib / mysql
Nếu tôi sử dụng $ mysql -u root
tôi sẽ nhận được:
Phiên bản máy chủ: 5.7.18-0ubfox0.16.04.1 (Ubuntu)
Bản quyền (c) 2000, 2017, Oracle và / hoặc các chi nhánh của nó. Đã đăng ký Bản quyền.
Oracle là nhãn hiệu đã đăng ký của Tập đoàn Oracle và / hoặc các chi nhánh của nó. Những tên khác có thể là thương hiệu của chủ sở hữu tương ứng.
Nhập 'trợ giúp;' hoặc '\ h' để được giúp đỡ. Nhập '\ c' để xóa câu lệnh đầu vào hiện tại.
mys>
Bây giờ thời gian để thay đổi mật khẩu:
mysql> use mysql
mysql> describe user;
Đọc thông tin bảng để hoàn thành tên bảng và cột Bạn có thể tắt tính năng này để khởi động nhanh hơn với -A
Cơ sở dữ liệu đã thay đổi
mysql> FLUSH PRIVILEGES;
mysql> SET PASSWORD FOR root@'localhost' = PASSWORD('newpwd');
hoặc Nếu bạn có tài khoản gốc mysql có thể kết nối từ mọi nơi, bạn cũng nên làm:
UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
Phương pháp luân phiên:
USE mysql
UPDATE user SET Password = PASSWORD('newpwd')
WHERE Host = 'localhost' AND User = 'root';
Và nếu bạn có tài khoản root có thể truy cập từ mọi nơi:
USE mysql
UPDATE user SET Password = PASSWORD('newpwd')
WHERE Host = '%' AND User = 'root';`enter code here
bây giờ cần phải quit
từ mysql và dừng / bắt đầu
FLUSH PRIVILEGES;
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start
bây giờ một lần nữa `mysql -u root -p 'và sử dụng mật khẩu mới để lấy
mys>