Tắt --skip-Grant-bảng trong MySQL


13

Tôi khá mới sử dụng Linux nhưng đang thiết lập cơ sở dữ liệu MySQL của tôi trên phiên bản Amazon ec2. Tôi đã làm theo một số hướng tôi tìm thấy về việc đặt lại mật khẩu đăng nhập của người dùng bằng cách sử dụng --skip-grant-tablestùy chọn của MySQL. Bây giờ tôi đang cố gắng thêm người dùng và không thể tìm ra cách tắt tùy chọn đó.

Đây là những gì tôi đang cố gắng làm:

mysql> GRANT CREATE,SELECT,INSERT,UPDATE,DELETE ON ...my db username and pass

nhưng tôi gặp lỗi này:

ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

Làm cách nào để tắt tùy chọn này?

Câu trả lời:




2

Bạn có thể thực hiện điều này bằng cách sử dụng các bước dưới đây.

[root@backups1 mysql5.7]# bin/mysqld_safe --skip-grant-tables --user=mysql

kết nối với mysql của bạn mà không cần mật khẩu.

mysql> flush privileges;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '';
mysql> flush privileges;

chuyển sang chế độ bình thường của mysql sau đó kết nối mà không cần mật khẩu.

Điều này chắc chắn sẽ làm việc cho bạn.


0

Hôm qua tôi đã gặp vấn đề tương tự. Máy chủ đã sử dụng Amazon Linux 2 làm HĐH và kho lưu trữ yum chính thức (el7) làm phương tiện cài đặt.

Đặc biệt khi bạn đang sử dụng MySQL của repo yum chính thức, MySQL sẽ được cài đặt dưới dạng dịch vụ systemd. Trong trường hợp như vậy, bạn có thể kiểm tra quá trình MySQL được khởi chạy bằng cách thực hiện lệnh sau : sudo service mysql status -l. Điều này dẫn đến mô tả về trạng thái hiện tại của dịch vụ mysql hiện tại. Trong những mô tả đó, tôi có thể tìm thấy dòng sau:

  Process: 26474 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS

Trong môi trường của tôi, hóa ra MYSQLD_OPTSbiến được đặt với --skip-grant-tablestùy chọn giá trị theo quy trình systemd. Để xác nhận các biến môi trường được thiết lập bởi systemd, bạn có thể thực thi sudo systemctl showvà tìm dòng bắt đầu bằng Environment=.

Để thay đổi biến môi trường này, tôi đã thực hiện theo lệnh.

sudo systemctl set-environment MYSQLD_OPTS=""

Sau thao tác này, tôi khởi động lại dịch vụ mysqld sudo service mysql restartvà mọi thứ đều hoạt động hoàn hảo.

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.