Tôi chỉ muốn có trên PC của mình (với Windows 8.1 x64) máy chủ MySQL mà không có Workbench hoặc thứ gì đó. Vì vậy, tôi đã tải xuống .zip
kho lưu trữ từ dev.mysql.com/doads . Đây là bản tải xuống cho Win64 trên x86_64 phiên bản 5.7.9 (Máy chủ cộng đồng MySQL (GPL)).
Tôi đã cài đặt nó như một dịch vụ Windows, nhưng không có mysql
cơ sở dữ liệu information_schema
. Vì vậy, tôi đã thực hiện điều này:
mysql_upgrade.exe --upgrade-system-tables
Và mysql
cơ sở dữ liệu đã được tạo ra. Nhưng cùng với nó, một cái gì đó đã xảy ra với người dùng root, vì tôi không thể truy cập được mysql
nữa.
Vì vậy, tôi quyết định đặt lại mật khẩu đột nhiên xuất hiện (vì tôi không có mật khẩu trước đó). Tôi thành lập giải pháp sau trong hướng dẫn chính thức, tôi khởi động máy chủ như thế này:
mysqld.exe --skip-grant-tables --console
Sau đó tôi mở mysql
mà không cần mật khẩu:
mysql.exe –u root
Và sau đó cố gắng thiết lập lại mật khẩu root:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD(‘passhere');
Nhưng tôi đã gặp lỗi này:
LRI 1131 (42000): Bạn đang sử dụng MySQL với tư cách là người dùng ẩn danh và người dùng ẩn danh không được phép thay đổi mật khẩu ".
Cái này là cái gì? Làm thế nào để tôi ẩn danh? Tất cả các lệnh đã được thực hiện trong cmd.exe
Quản trị viên.
Tôi nên làm gì để thiết lập lại mật khẩu root trong tình huống này?
Cập nhật 1: Tôi đã cố kiểm tra người dùng hiện tại:
SELECT USER(), CURRENT_USER();
Điều đó mang lại:
+--------+----------------+
| USER() | CURRENT_USER() |
+--------+----------------+
| root@ | @ |
+--------+----------------+
Điều đó thật kỳ lạ, bởi vì tôi đã bắt đầu nó như thế mysql.exe -u root
.
Sau đó, tôi đã kiểm tra bảng người dùng:
SELECT user FROM mysql.user;
Điều đó mang lại:
+-----------+
| user |
+-----------+
| mysql.sys |
+-----------+
Điều đó thậm chí còn kỳ lạ hơn. Ngoài ra không có trường mật khẩu:
SELECT user, password FROM mysql.user;
LRI 1054 (42S22): 'mật khẩu' cột không xác định trong 'danh sách trường'
Vì vậy, tôi không thể thay đổi mật khẩu của nó.
Và tôi không thể tạo người dùng mới:
CREATE USER 'root'@'localhost' IDENTIFIED BY 'passhere';
LRI 1290 (HY000): Máy chủ MySQL đang chạy với
--skip-grant-tables
tùy chọn để nó không thể thực thi câu lệnh này
Bây giờ tôi bị lạc.
Cập nhật 2: Tôi đoán, tôi đã làm mọi thứ sai từ đầu. Rõ ràng, tôi đã bỏ lỡ một mysqld.exe --initialize
lệnh nào đó.
Vì vậy, đây là cách tôi cài đặt MySQL từ .zip-archive, nhờ @RolandoMySQLDBA :
- Giải nén lưu trữ, chuẩn bị
my.ini
. - Thực thi
mysqld.exe --initialize
, lấy mật khẩu tạm thời từ.err
tập tin. Cài đặt MySQL như một dịch vụ và chạy nó
mysqld --install MySQL --defaults-file="d:/path/to/mysql/my.ini"
Kết nối với nó
mysql -u root -p
bằng mật khẩu tạm thời.Thay đổi mật khẩu tạm thời:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NEWPASSWORD';