ວິທີການຕັ້ງຄ່າລະຫັດຜ່ານຮາກໃນ MySQL 8.0
ໃນກໍລະນີທີ່ໂຊກບໍ່ດີຂອງການລືມຫຼືການສູນເສຍລະຫັດຜ່ານລະຫັດ MySQL ຂອງທ່ານ, ທ່ານແນ່ນອນຈະຕ້ອງມີວິທີການກູ້ຄືນມັນຢ່າງແນ່ນອນ. ສິ່ງທີ່ພວກເຮົາຕ້ອງຮູ້ແມ່ນລະຫັດຜ່ານຖືກເກັບໄວ້ໃນຕາຕະລາງຜູ້ໃຊ້. ນີ້ ໝາຍ ຄວາມວ່າພວກເຮົາ ຈຳ ເປັນຕ້ອງຫາວິທີທີ່ຈະຂ້າມຜ່ານການກວດສອບ MySQL, ດັ່ງນັ້ນພວກເຮົາສາມາດອັບເດດບັນທຶກລະຫັດຜ່ານໄດ້.
ໂຊກດີທີ່ມີຄວາມສາມາດທີ່ຈະບັນລຸໄດ້ງ່າຍແລະບົດແນະ ນຳ ນີ້ຈະ ນຳ ພາທ່ານຜ່ານຂັ້ນຕອນການກູ້ຄືນຫລື ກຳ ນົດລະຫັດລັບຂອງຮາກໃນ MySQL 8.0 ລຸ້ນ ໃໝ່.
ອີງຕາມເອກະສານ MySQL ມີສອງວິທີໃນການຕັ້ງລະຫັດລັບ MySQL ຮາກ. ພວກເຮົາຈະທົບທວນທັງສອງຢ່າງ.
ຕັ້ງລະຫັດຜ່ານ MySQL ຮາກຄືນ ໃໝ່ ໂດຍໃຊ້ -init-file
ວິທີ ໜຶ່ງ ໃນການຕັ້ງຄ່າລະຫັດຜ່ານຮາກແມ່ນການສ້າງເອກະສານທ້ອງຖິ່ນແລະຫຼັງຈາກນັ້ນເລີ່ມຕົ້ນບໍລິການ MySQL ໂດຍໃຊ້ຕົວເລືອກ --init-file
ດັ່ງທີ່ສະແດງ.
# vim /home/user/init-file.txt
ມັນເປັນສິ່ງ ສຳ ຄັນທີ່ທ່ານຕ້ອງຮັບປະກັນວ່າເອກະສານສາມາດອ່ານໄດ້ໂດຍຜູ້ໃຊ້ mysql. ພາຍໃນເອກະສານນັ້ນວາງດັ່ງຕໍ່ໄປນີ້:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
ໃນການປ່ຽນແປງຂ້າງເທິງນີ້“ new_password” ດ້ວຍລະຫັດຜ່ານທີ່ທ່ານຕ້ອງການໃຊ້.
ຕອນນີ້ໃຫ້ແນ່ໃຈວ່າບໍລິການ MySQL ຖືກຢຸດ. ທ່ານສາມາດເຮັດສິ່ງຕໍ່ໄປນີ້:
# systemctl stop mysqld.service # for distros using systemd # /etc/init.d/mysqld stop # for distros using init
ຫຼັງຈາກນັ້ນ, ດຳ ເນີນການຕໍ່ໄປນີ້:
# mysqld --user=mysql --init-file=/home/user/init-file.txt --console
ນີ້ຈະເລີ່ມຕົ້ນການບໍລິການ MySQL ແລະໃນລະຫວ່າງຂັ້ນຕອນມັນຈະ ດຳ ເນີນການໄຟລ໌ init ທີ່ທ່ານໄດ້ສ້າງແລ້ວດັ່ງນັ້ນລະຫັດຜ່ານ ສຳ ລັບຜູ້ໃຊ້ຮາກຈະຖືກປັບປຸງ. ໃຫ້ແນ່ໃຈວ່າທ່ານຈະລຶບໄຟລ໌ດັ່ງກ່າວເມື່ອລະຫັດຜ່ານຖືກຕັ້ງຄ່າແລ້ວ.
ໃຫ້ແນ່ໃຈວ່າຈະຢຸດ server ແລະເລີ່ມຕົ້ນມັນເປັນປົກກະຕິຫຼັງຈາກນັ້ນ.
# systemctl stop mysqld.service # for distros using systemd # systemctl restart mysqld.service # for distros using systemd # /etc/init.d/mysqld stop # for distros using init # /etc/init.d/mysqld restart # for distros using init
ດຽວນີ້ທ່ານຄວນສາມາດເຊື່ອມຕໍ່ກັບເຊີຟເວີ MySQL ເປັນຮາກໂດຍໃຊ້ລະຫັດລັບ ໃໝ່.
# mysql -u root -p
ຕັ້ງລະຫັດຜ່ານ MySQL ຮາກຄືນ ໃໝ່ ໂດຍໃຊ້ tablesskip-grant-tables
ຕົວເລືອກທີສອງທີ່ພວກເຮົາມີແມ່ນເລີ່ມຕົ້ນໃຫ້ບໍລິການ MySQL ດ້ວຍຕົວເລືອກ --skip-grant-tables
. ນີ້ມີຄວາມປອດໄພ ໜ້ອຍ ກວ່າໃນຂະນະທີ່ບໍລິການເລີ່ມຕົ້ນແບບນັ້ນ, ຜູ້ໃຊ້ທຸກຄົນສາມາດເຊື່ອມຕໍ່ໂດຍບໍ່ຕ້ອງໃຊ້ລະຫັດຜ່ານ.
ຖ້າເຊີບເວີຖືກເລີ່ມຕົ້ນ --skip-grant-tables
, ຕົວເລືອກ ສຳ ລັບ --skip-networking
ຈະຖືກເປີດໃຊ້ໂດຍອັດຕະໂນມັດດັ່ງນັ້ນການເຊື່ອມຕໍ່ທາງໄກຈະບໍ່ສາມາດໃຊ້ໄດ້.
ທຳ ອິດໃຫ້ແນ່ໃຈວ່າບໍລິການ MySQL ຖືກຢຸດ.
# systemctl stop mysqld.service # for distros using systemd # /etc/init.d/mysqld stop # for distros using init
ຫຼັງຈາກນັ້ນ, ເລີ່ມຕົ້ນການບໍລິການດ້ວຍທາງເລືອກຕໍ່ໄປນີ້.
# mysqld --skip-grant-tables --user=mysql &
ຈາກນັ້ນ, ທ່ານສາມາດເຊື່ອມຕໍ່ກັບເຊີບເວີ mysql ໂດຍພຽງແຕ່ເຮັດວຽກ.
# mysql
ເນື່ອງຈາກການຄຸ້ມຄອງບັນຊີຖືກປິດໃຊ້ງານເມື່ອການບໍລິການຖືກເລີ່ມຕົ້ນດ້ວຍຕົວເລືອກ --skip-grant-tables
, ພວກເຮົາຈະຕ້ອງເອົາເງິນຊ່ວຍເຫຼືອຄືນ ໃໝ່. ວິທີນັ້ນພວກເຮົາຈະສາມາດປ່ຽນລະຫັດຜ່ານພາຍຫຼັງ:
# FLUSH PRIVILEGES;
ຕອນນີ້ທ່ານສາມາດ ດຳ ເນີນການສອບຖາມຕໍ່ໄປນີ້ເພື່ອປັບປຸງລະຫັດຜ່ານ. ໃຫ້ແນ່ໃຈວ່າຕ້ອງປ່ຽນ“ new_password” ດ້ວຍລະຫັດຜ່ານທີ່ທ່ານຕ້ອງການໃຊ້.
# ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_passowrd';
ຕອນນີ້ຢຸດ MySQL server ແລະເລີ່ມຕົ້ນປົກກະຕິ.
# systemctl stop mysqld.service # for distros using systemd # systemctl restart mysqld.service # for distros using systemd # /etc/init.d/mysqld stop # for distros using init # /etc/init.d/mysqld restart # for distros using init
ທ່ານຄວນຈະສາມາດເຊື່ອມຕໍ່ກັບລະຫັດລັບ ໃໝ່ ຂອງທ່ານ.
# mysql -u root -p
ທ່ານອາດຈະຢາກອ່ານບົດຄວາມທີ່ກ່ຽວຂ້ອງກັບ MySQL ຕໍ່ໄປນີ້.
<
ໃນບົດຄວາມນີ້ທ່ານໄດ້ຮຽນຮູ້ວິທີການຕັ້ງຄ່າລະຫັດລັບຮາກທີ່ຫາຍໄປ ສຳ ລັບ MySQL 8.0 server. ຂ້ອຍຫວັງວ່າຂັ້ນຕອນນີ້ງ່າຍດາຍ.