54.MySQL-Utilities工具包之-mysqlserverclone

mysqlserverclone --克隆实例。
1.准备my.cnf文件:
[root@mysql1 system]# cat /mysql/mysql3307.cnf
[mysqld]
port=3307
innodb_force_recovery = 0
datadir=/mysql/mysql3307
socket=/mysql/mysql3307.sock

symbolic-links=0
user=mysql
server_id=133307   --修改。
expire_logs_days = 7
log_bin=/mysql/data/binlog3307/mysql-binlog
log_bin_index=/mysql/data/binlog3307/mysql-binlog.index

binlog_format=row
binlog_rows_query_log_events=on
gtid_mode = on
enforce_gtid_consistency = 1
log_slave_updates = 1
binlog_gtid_simple_recovery = 1
default-time-zone= '+8:00'
secure_file_priv=''
skip-grant-tables
[mysqld_safe]
log-error=/mysql/mysql3307.log
pid-file=/mysql/mysql3307.pid

innodb_file_per_table=1 

2.创建相关目录并授权。
mkdir -p /mysql/data/binlog3307/ /mysql/mysql3307
chown -R mysql:mysql /mysql 

3.克隆实例。
mysqlserverclone --server=root:rootroot@localhost:3306:/tmp/mysql.sock --new-data=/mysql/mysql3307 --new-port=3307 --new-id=12 --root-password=rootroot 

旧实例端口是:3306

新实例端口是:3307

4.克隆后权限为root ;
chown -R mysql:mysql /mysql/mysql3307 
vi /mysql/mysql3307/auto.cnf  --修改server-uuid  改为和之前不一样的。

5.新实例启动时报:
新实例和老实例的ibdata 冲突。
(1)关闭旧的实例 systemctl stop mysql 
(2)启动新的实例:mysqld --defaults-file=/mysql/mysql3307.cnf &1>/dev/null & 
--发现新实例无法登录。
vi /mysql/mysql3307.cnf
[mysqld]
skip-grant-tables  --免密登录。
--更新密码。
mysql> update mysql.user set authentication_string=password('rootroot') where user='root' and host='localhost';
Query OK, 1 row affected, 1 warning (0.00 sec)
mysql> update mysql.user set authentication_string=password('rootroot') where user='root' and host='%';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges; 
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
--注释:
vi /mysql/mysql3307.cnf
#[mysqld]
skip-grant-tables 

重启3307:
kill -9 pidofmysqld;
mysqld --defaults-file=/mysql/mysql3307.cnf &1>/dev/null &
--登录:验证。
[root@mysql1 mysql]# mysql -uroot -prootroot -P3307 --socket=/mysql/mysql3307.sock
mysql> show databases; 
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

(3)再启动旧的实例:systemctl start mysql 
mysql -uroot -prootroot -P3306 --socket=/mysql/mysql3306.sock
mysql> show databases; 
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+

总结:

mysqlserverclone 工具我们不常用,如果像创建多个实例直接初始化一个实例就可以了。

但是如果想创建一个和之前的实例一模一样,且当前服务器存在很多内存时则可以使用克隆技术。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值