Bạn đang sử dụng phiên bản MySQL nào? Tôi đang sử dụng 5.7.10 và có cùng một vấn đề với việc đăng nhập như root
Có 2 vấn đề - tại sao tôi không thể đăng nhập làm root để bắt đầu và tại sao tôi không thể sử dụng 'mysqld_safe` để bắt đầu mysql để đặt lại mật khẩu gốc.
Tôi không có câu trả lời để thiết lập mật khẩu gốc trong quá trình cài đặt, nhưng đây là những gì bạn làm để đặt lại mật khẩu gốc
Chỉnh sửa mật khẩu gốc ban đầu khi cài đặt có thể được tìm thấy bằng cách chạy the initial root password on install can be found by running
grep 'temporary password' /var/log/mysqld.log
//dev.mysql.com/doc/refman/5.7/en/linux-installation-yum-repo.html
0 hiện được sử dụng để chăm sóc MySQL thay vì1. Stop mysql: sudo systemctl stop mysqld 2. Set the mySQL environment option sudo systemctl set-environment MYSQLD_OPTS="--skip-grant-tables" 3. Start mysql usig the options you just set sudo systemctl start mysqld 4. Login as root mysql -u root 5. Update the root user password with these mysql commands mysql> UPDATE mysql.user SET authentication_string = PASSWORD['MyNewPassword'] -> WHERE User = 'root' AND Host = 'localhost'; mysql> FLUSH PRIVILEGES; mysql> quit *** Edit *** As mentioned my shokulei in the comments, for 5.7.6 and later, you should use mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass'; Or you'll get a warning 6. Stop mysql sudo systemctl stop mysqld 7. Unset the mySQL envitroment option so it starts normally next time sudo systemctl unset-environment MYSQLD_OPTS 8. Start mysql normally: sudo systemctl start mysqld Try to login using your new password: 7. mysql -u root -p
1 [đó là lý do tại sao bạn gặp lỗi1. Stop mysql: sudo systemctl stop mysqld 2. Set the mySQL environment option sudo systemctl set-environment MYSQLD_OPTS="--skip-grant-tables" 3. Start mysql usig the options you just set sudo systemctl start mysqld 4. Login as root mysql -u root 5. Update the root user password with these mysql commands mysql> UPDATE mysql.user SET authentication_string = PASSWORD['MyNewPassword'] -> WHERE User = 'root' AND Host = 'localhost'; mysql> FLUSH PRIVILEGES; mysql> quit *** Edit *** As mentioned my shokulei in the comments, for 5.7.6 and later, you should use mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass'; Or you'll get a warning 6. Stop mysql sudo systemctl stop mysqld 7. Unset the mySQL envitroment option so it starts normally next time sudo systemctl unset-environment MYSQLD_OPTS 8. Start mysql normally: sudo systemctl start mysqld Try to login using your new password: 7. mysql -u root -p
2 - nó chưa được cài đặt]1. Stop mysql: sudo systemctl stop mysqld 2. Set the mySQL environment option sudo systemctl set-environment MYSQLD_OPTS="--skip-grant-tables" 3. Start mysql usig the options you just set sudo systemctl start mysqld 4. Login as root mysql -u root 5. Update the root user password with these mysql commands mysql> UPDATE mysql.user SET authentication_string = PASSWORD['MyNewPassword'] -> WHERE User = 'root' AND Host = 'localhost'; mysql> FLUSH PRIVILEGES; mysql> quit *** Edit *** As mentioned my shokulei in the comments, for 5.7.6 and later, you should use mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass'; Or you'll get a warning 6. Stop mysql sudo systemctl stop mysqld 7. Unset the mySQL envitroment option so it starts normally next time sudo systemctl unset-environment MYSQLD_OPTS 8. Start mysql normally: sudo systemctl start mysqld Try to login using your new password: 7. mysql -u root -p
Cấu trúc bảng
3 đã thay đổi.1. Stop mysql: sudo systemctl stop mysqld 2. Set the mySQL environment option sudo systemctl set-environment MYSQLD_OPTS="--skip-grant-tables" 3. Start mysql usig the options you just set sudo systemctl start mysqld 4. Login as root mysql -u root 5. Update the root user password with these mysql commands mysql> UPDATE mysql.user SET authentication_string = PASSWORD['MyNewPassword'] -> WHERE User = 'root' AND Host = 'localhost'; mysql> FLUSH PRIVILEGES; mysql> quit *** Edit *** As mentioned my shokulei in the comments, for 5.7.6 and later, you should use mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass'; Or you'll get a warning 6. Stop mysql sudo systemctl stop mysqld 7. Unset the mySQL envitroment option so it starts normally next time sudo systemctl unset-environment MYSQLD_OPTS 8. Start mysql normally: sudo systemctl start mysqld Try to login using your new password: 7. mysql -u root -p
Vì vậy, để đặt lại mật khẩu gốc, bạn vẫn bắt đầu MySQL với các tùy chọn
1. Stop mysql:
sudo systemctl stop mysqld
2. Set the mySQL environment option
sudo systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
3. Start mysql usig the options you just set
sudo systemctl start mysqld
4. Login as root
mysql -u root
5. Update the root user password with these mysql commands
mysql> UPDATE mysql.user SET authentication_string = PASSWORD['MyNewPassword']
-> WHERE User = 'root' AND Host = 'localhost';
mysql> FLUSH PRIVILEGES;
mysql> quit
*** Edit ***
As mentioned my shokulei in the comments, for 5.7.6 and later, you should use
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
Or you'll get a warning
6. Stop mysql
sudo systemctl stop mysqld
7. Unset the mySQL envitroment option so it starts normally next time
sudo systemctl unset-environment MYSQLD_OPTS
8. Start mysql normally:
sudo systemctl start mysqld
Try to login using your new password:
7. mysql -u root -p
4 và cập nhật bảng 1. Stop mysql:
sudo systemctl stop mysqld
2. Set the mySQL environment option
sudo systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
3. Start mysql usig the options you just set
sudo systemctl start mysqld
4. Login as root
mysql -u root
5. Update the root user password with these mysql commands
mysql> UPDATE mysql.user SET authentication_string = PASSWORD['MyNewPassword']
-> WHERE User = 'root' AND Host = 'localhost';
mysql> FLUSH PRIVILEGES;
mysql> quit
*** Edit ***
As mentioned my shokulei in the comments, for 5.7.6 and later, you should use
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
Or you'll get a warning
6. Stop mysql
sudo systemctl stop mysqld
7. Unset the mySQL envitroment option so it starts normally next time
sudo systemctl unset-environment MYSQLD_OPTS
8. Start mysql normally:
sudo systemctl start mysqld
Try to login using your new password:
7. mysql -u root -p
3, nhưng cách bạn thực hiện nó đã thay đổi.1. Stop mysql:
sudo systemctl stop mysqld
2. Set the mySQL environment option
sudo systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
3. Start mysql usig the options you just set
sudo systemctl start mysqld
4. Login as root
mysql -u root
5. Update the root user password with these mysql commands
mysql> UPDATE mysql.user SET authentication_string = PASSWORD['MyNewPassword']
-> WHERE User = 'root' AND Host = 'localhost';
mysql> FLUSH PRIVILEGES;
mysql> quit
*** Edit ***
As mentioned my shokulei in the comments, for 5.7.6 and later, you should use
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
Or you'll get a warning
6. Stop mysql
sudo systemctl stop mysqld
7. Unset the mySQL envitroment option so it starts normally next time
sudo systemctl unset-environment MYSQLD_OPTS
8. Start mysql normally:
sudo systemctl start mysqld
Try to login using your new password:
7. mysql -u root -p
Tài liệu tham khảo
Như đã nói tại //dev.mysql.com/doc/refman/5.7/en/mysqld-safe.html,
Ghi chú
Kể từ MySQL 5.7.6, để cài đặt MySQL bằng cách sử dụng phân phối RPM, khởi động và tắt máy chủ được quản lý bởi SystemD trên một số nền tảng Linux. Trên các nền tảng này, mysqld_safe không còn được cài đặt vì nó không cần thiết. Để biết thêm thông tin, xem Phần 2.5.10, Quản lý máy chủ MySQL với SystemD.
Điều này đưa bạn đến //dev.mysql.com/doc/refman/5.7/en/server-man quản lý-using-systemd.html nơi nó đề cập đến
1. Stop mysql:
sudo systemctl stop mysqld
2. Set the mySQL environment option
sudo systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
3. Start mysql usig the options you just set
sudo systemctl start mysqld
4. Login as root
mysql -u root
5. Update the root user password with these mysql commands
mysql> UPDATE mysql.user SET authentication_string = PASSWORD['MyNewPassword']
-> WHERE User = 'root' AND Host = 'localhost';
mysql> FLUSH PRIVILEGES;
mysql> quit
*** Edit ***
As mentioned my shokulei in the comments, for 5.7.6 and later, you should use
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
Or you'll get a warning
6. Stop mysql
sudo systemctl stop mysqld
7. Unset the mySQL envitroment option so it starts normally next time
sudo systemctl unset-environment MYSQLD_OPTS
8. Start mysql normally:
sudo systemctl start mysqld
Try to login using your new password:
7. mysql -u root -p
6 về phía dưới của trang.Các lệnh đặt lại mật khẩu nằm ở dưới cùng của //dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html
Để cài đặt MySQL 5.7 mới nhất trên RHEL/CentOS 7. Có vài bước sau-::
Bước 1-: Thêm kho lưu trữ Epel dưới đây Add the below EPEL Repository
$ sudo rpm -iUvh //dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
Bước 2-: Cài đặt máy chủ MySQL bằng trình cài đặt Yum bên dưới. Install the MySql Server using below yum installer.
$ sudo yum install mysql-server
Bước 3-: Thêm vào khởi động hệ thống và khởi động máy chủ MySQL. Add to system Startup and start the Mysql Server.
$ sudo systemctl enable mysqld $ sudo systemctl start mysqld
Bước 4-: Đặt lại mật khẩu gốc máy chủ MySQL. Reset the MySql server root password.
sudo grep 'temporary password' /var/log/mysqld.log
Đầu ra một cái gì đó như-:
10.744785Z 1 [Note] A temporary password is generated for root@localhost: o!5y,oJGALQa
Sử dụng mật khẩu trên trong quá trình đặt lại quá trình mysql_secure_installation.
$ sudo mysql_secure_installation Securing the MySQL server deployment. Enter password for user root: The 'validate_password' plugin is installed on the server. The subsequent steps will run with the existing configuration of the plugin. Using existing password for root. Estimated strength of the password: 100 Change the password for root ? [[Press y|Y for Yes, any other key for No] : y New password: Re-enter new password: Estimated strength of the password: 100 Do you wish to continue with the password provided?[Press y|Y for Yes, any other key for No] : y By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Press y|Y for Yes, any other key for No] : y Success. Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Press y|Y for Yes, any other key for No] : y Success. By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Press y|Y for Yes, any other key for No] : y - Dropping test database... Success. - Removing privileges on test database... Success. Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Press y|Y for Yes, any other key for No] : y Success. All done!
Bạn đã đặt lại thành công mật khẩu gốc của máy chủ MySQL.
Bước 5-: Sử dụng lệnh bên dưới để kiểm tra kết nối máy chủ MySQL hay không. Use the below command to check the mysql server connecting or not.
$ mysql -u root -p
Output-:
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 9 Server version: 5.7.12 MySQL Community Server [GPL] Copyright [c] 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
Xem bài viết của tôi: Cài đặt-Latest-Mysql-5-7-rhelcentos-7