mysql备份并转移数据
一、使用mysqldump进行备份
直接输入命令mysqldump会发现提示命令不存在,是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,
自然会找不到命令,并报错。知道了问题的所在,就直接去处理,先用一条find命令查找mysqldump的所载路径
find / -name mysql -print // 找到文件名称为mysql的文件
然后再用ln命令链接到/usr/bin下面。
ln -fs /usr/local/mysql/bin/mysqldump /usr/bin
注:出现下面错误
mysqldump: Got error: 2002: Can\'t connect to local MySQL server through socket \'/tmp/mysql.sock\' (2) when trying to connect
解决:
使用 find / -name mysql -print 查看 mysql.sock路径
查看 vim /etc/my.cnf 查看 socket=/var/lib/mysql/mysql.sock 指定路径是否正确,不正确更改
重启 service mysqld restart
若是还报上面的错误,可以使用软连接建立连接 ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
测试迁移进行登录测试
mysql -h 服务器ip地址 -P 3306 -u root -p
数据库锁表:这个命令执行后所有库所有表都被锁定为只读(如果会话关闭,则自动解锁)解锁命令unlock tables
mysql> flush tables with read lock;
Query OK, 0 rows affected (0.00 sec)
开始备份
[root@localhost ~]# mysqldump -u root -p -A -B --master-data=1 | gzip > /123/test.sql.gz
将备份传输到新数据库进行恢复
[root@localhost ~]# scp /123/test.sql.gz 192.168.3.101:/root/
恢复数据
[root@localhost ~]# gunzip test.sql.gz
[root@localhost ~]# mysql -u root -p < test.sql
注:出现下面错误说明没有关闭slave,关闭命令stop slave
This operation cannot be performed with a running slave; run STOP SLAVE first
恢复成功,可以使用可视化查看