Làm cách nào để xóa mật khẩu cho MySQL? Tôi không muốn có mật khẩu để kết nối với cơ sở dữ liệu. Máy chủ của tôi đang chạy Ubuntu.
Làm cách nào để xóa mật khẩu cho MySQL? Tôi không muốn có mật khẩu để kết nối với cơ sở dữ liệu. Máy chủ của tôi đang chạy Ubuntu.
Câu trả lời:
Cá nhân, tôi nghĩ thay vào đó tốt hơn là đặt mật khẩu và lưu mật khẩu trong /root/.my.cnf:
Đầu tiên:
mysqladmin -u root password 'asdfghjkl'
Sau đó chỉnh sửa tập tin .my.cnf của root:
[client]
password = asdfghjkl
Hãy chắc chắn chmod 0600 .my.cnf
.
Bây giờ bạn có mật khẩu nhưng bạn không còn được nhắc nhập nữa. Cài đặt máy chủ MySQL mặc định của tôi là một mật khẩu duy nhất hoàn toàn ngẫu nhiên cho mỗi máy chủ MySQL, được lưu trong tệp .my.cnf như thế này.
mv ./+%Y%m%d
. $ Ds.sql $ OUTPUT` giữa mysqldump và gzip
Nếu bạn có mật khẩu được đặt cho MySQL, hãy làm theo các hướng dẫn tại Khôi phục mật khẩu gốc của MySQL và sau đó đặt mật khẩu của bạn thành null:
Cho 5.7.6 trở lên
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass'
Cho 5.7.5 trở về trước
update user set password=PASSWORD("") where User='root';
* cần khởi động lại DB (xem hướng dẫn tại liên kết) để điều này có hiệu lực.
sudo service mysql restart
unix_socket
plugin làm một điều hơi khác nhau.
Có, ít mật khẩu có thể là một điều tốt. Nhưng đừng chỉ mở cơ sở dữ liệu cho mọi người.
thông qua unix_socket:
grant usage on *.* to 'root'@'localhost' identified via unix_socket;
Điều này cung cấp cho bạn tài khoản mysql không mật khẩu cho người dùng root đã đăng nhập cục bộ. Btw. đây là mặc định trong các bản phát hành ubfox / debian gần đây.
some_user@box: mysql -u root # denied
root@box: mysql # good
some_user@box: sudo mysql # good, if "some_user" has sudo rights.
Các slide giải thích: https://www.sl slideshoware.net/ottokekalainen/less-passwords-more-security-unix-socket-authentication-and-other-mariadb-hardening-tips .