一、首先Mysql备份
1、备份命令格式:
备份不在本地mysql
mysqldump -h主机IP -P端口 -u用户名 -p密码 --database 数据库名 > 文件名.dump
备份本地mysql:
mysqldump --opt -u用户名 -p密码 -R 数据库名 > 文件名.dump
示例:
mysqldump --opt -ueccom –peccom -R nete > nete.dump
小知识,经常要添加–opt、-R参数意义
1、–opt:此Mysqldump命令参数是可选的,如果带上这个选项代表激活了Mysqldump命令的quick,add-drop-table,add-locks,extended-insert,lock-tables参数,也就是通过–opt参数在使用Mysqldump导出Mysql数据库信息时不需要再附加上述这些参数。
–quick:代表忽略缓冲输出,Mysqldump命令直接将数据导出到指定的SQL文件。
–add-drop-table:顾名思义,就是在每个CREATE TABEL命令之前增加DROP-TABLE IF EXISTS语句,防止数据表重名。
–add-locks:表示在INSERT数据之前和之后锁定和解锁具体的数据表,你可以打开Mysqldump导出的SQL文件,在INSERT之前会出现LOCK TABLES和UNLOCK TABLES语句。
–extended-insert (-e):此参数表示可以多行插入。
2、-R:导出存储过程以及自定义函数
2、备份遇到问题:
1、Can’t connect to local MySQL server through sock
解决办法:
找到正确的套接字的路径: [root@localhost ~]# netstat -ln | grep mysql
unix 2 [ ACC ] STREAM LISTENING 2447213870
/data/mysql/data/mysql.sock再运行dump命令: mysqldump
–socket=/data/mysql/data/mysql.sock -uroot
-p***** nete > nete.dump
2、mysqldump: Couldn’t execute ‘SET OPTION SQL_QUOTE_SHOW_CREATE=1’: You have an error in your SQL syntax; check the manual t
解决办法:
首先第一步查看数据库版本和操作数据库版本是否一致(简单说就是之前服务器装过数据库,这个命令还是之前版本的)
[rootlocalhost ~]#mysqldump --version
mysqldump Ver 10.13 Distrib5.1.71, for redhat-linux-gnu (x86_64)
[rootlocalhost ~]# which mysqldump
/usr/bin/mysqldump
第二步更改mysqldummp对应版本
cp /opt/mysql/mysql-5.6.23-linux-glibc2.5-x86_64/bin/mysqldump /usr/bin/mysqldump
二、导入数据
mysql -u用户 -p密码 nete < nete.dump