(實踐應用)CentOS + MySQL5.7 Have No mysqld_safe

https://stackoverflow.com/questions/33510184/change-mysql-root-password-on-centos7/34207996#34207996

  • systemd is now used to look after mySQL instead of mysqld_safe (which is why you get the -bash: mysqld_safe: command not found error - it’s not installed)
  • The user table structure has changed.

    1. Stop mysql:
      systemctl stop mysqld

    2. Set the mySQL environment option
      systemctl set-environment MYSQLD_OPTS=”–skip-grant-tables”

    3. Start mysql usig the options you just set
      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

    6. Stop mysql
      systemctl stop mysqld

    7. Unset the mySQL envitroment option so it starts normally next time
      systemctl unset-environment MYSQLD_OPTS

    8. Start mysql normally:
      systemctl start mysqld

    9. Try to login using your new password:
      mysql -u root -p

Reference

As it says at http://dev.mysql.com/doc/refman/5.7/en/mysqld-safe.html,

Note

As of MySQL 5.7.6, for MySQL installation using an RPM distribution, server startup and shutdown is managed by systemd on several Linux platforms. On these platforms, mysqld_safe is no longer installed because it is unnecessary. For more information, see Section 2.5.10, “Managing MySQL Server with systemd”.Which takes you to http://dev.mysql.com/doc/refman/5.7/en/server-management-using-systemd.html where it mentions the systemctl set-environment MYSQLD_OPTS= towards the bottom of the page

The password reset commands are at the bottom of
http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章