--set-gtid-purged-ON
옵션을 사용해야 백업이 진행됨.--single-transaction
옵션을 지정하면 된다.mysqlpump --user=root --password='Study3306!' --users --exclude-databases=% --exclude-users=root,mysql.infoschema,mysql.session,mysql.sys > /home/dongle/bck_usr.sql
TMI : MySQL 8.0부터 일부 시스템 계정명이 변경되었다.
mysql> select host,user from mysql.user;
+-----------+------------------+
| host | user |
+-----------+------------------+
| localhost | minstone |
| localhost | dongle |
| localhost | mysql.infoschema |
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
+-----------+------------------+
5 rows in set (0.00 sec)
mysql> mysqlpump --user=root --password='Study3306!' --users --exclude-databases=% --exclude-users=root,mysql.infoschema,mysql.session,mysql.sys > /home/dongle/bck_usr.sql
mysql> exit
Bye
[root@191 dongle]# ls -al
합계 12
drwxr-xr-x. 2 root root 4096 2022-04-25 16:46 .
drwxr-xr-x. 7 root root 4096 2022-04-25 16:31 ..
-rw-r--r--. 1 root root 1610 2022-04-25 16:45 bck_usr.sql
[root@191 dongle]# vi bck_usr.sql
bck_usr.sql 파일
-- Dump created by MySQL pump utility, version: 8.0.28, Linux (x86_64)
-- Dump start time: Mon Apr 25 16:44:59 2022
-- Server version: 8.0.28
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE;
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET @@SESSION.SQL_LOG_BIN= 0;
SET @OLD_TIME_ZONE=@@TIME_ZONE;
SET TIME_ZONE='+00:00';
SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT;
SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS;
SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION;
SET NAMES utf8mb4;
CREATE USER `dongle`@`localhost` IDENTIFIED WITH 'mysql_native_password' AS '*FAAFFE644E901CFAFAEC7562415E5FAEC243B8B2' REQUIRE NONE PASSWORD EXPIRE DEFAULT ACCOUNT UNLOCK PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT PASSWORD REQUIRE CURRENT DEFAULT;
GRANT SELECT, UPDATE ON *.* TO `dongle`@`localhost`;
CREATE USER `minstone`@`localhost` IDENTIFIED WITH 'caching_sha2_password' AS '$A$005$ H|IE ^VP^?^R]W`&?_Nx^XQoQEvvtYV6RvSdXybVjIpIarjDemV.hnJvj1t.S3F2S1' REQUIRE NONE PASSWORD EXPIRE DEFAULT ACCOUNT UNLOCK PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT PASSWORD REQUIRE CURRENT DEFAULT;
GRANT USAGE ON *.* TO `minstone`@`localhost`;
SET TIME_ZONE=@OLD_TIME_ZONE;
SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT;
SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS;
SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
SET SQL_MODE=@OLD_SQL_MODE;
-- Dump end time: Mon Apr 25 16:45:00 2022
mysql_native_password
패스워드 암호화 계정 dongle 복원 성공caching_sha2_password
패스워드 암호화 계정 해시포맷오류로 복원 실패 mysql> CREATE USER `dongle`@`localhost` IDENTIFIED WITH 'mysql_native_password' AS '*FAAFFE644E901CFAFAEC7562415E5FAEC243B8B2' REQUIRE NONE PASSWORD EXP IRE DEFAULT ACCOUNT UNLOCK PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT PASSWORD REQUIRE CURRENT DEFAULT;
Query OK, 0 rows affected (0.02 sec)
mysql> GRANT SELECT, UPDATE ON *.* TO `dongle`@`localhost`;
Query OK, 0 rows affected (0.00 sec)
mysql> CREATE USER `minstone`@`localhost` IDENTIFIED WITH 'caching_sha2_password' AS '$A$005$ H|IE ^VP^?^R]W`&?_Nx^XQoQEvvtYV6RvSdXybVjIpIarjDemV.hn Jvj1t.S3F2S1' REQUIRE NONE PASSWORD EXPIRE DEFAULT ACCOUNT UNLOCK PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT PASSWORD REQUIRE CURRENT DEFA ULT;
ERROR 1827 (HY000): The password hash doesn't have the expected format.
mysql> GRANT USAGE ON *.* TO `minstone`@`localhost`;
ERROR 1410 (42000): You are not allowed to create a user with GRANT
'caching_sha2_password' 방식의 경우 mysqlpump를 이용한 논리백업은 불가하다.