linux下mysqldump导出数据、表结构,导入数据

来源:互联网 发布:天谕白帝捏脸数据下载 编辑:程序博客网 时间:2024/05/29 18:54
导出数据库中的脚本,去除自增
mysqldump -u<username> -p  -h<db-host> -d  --single-transaction --opt <db-name> | sed 's/AUTO_INCREMENT=[0-9]*\b//' > <filename>.sql

注意:msyql是区别大小写的
 
--lock-tables
多加了一个 READ LOCAL LOCK,该锁不会阻止读,也不会阻止新的数据插入。
--lock-all-tables
这个就有点不太一样了,它请求发起一个全局的读锁,会阻止对所有表的写入操作,以此来确保数据的一致性。备份完成后,该会话断开,会自动解锁。

--single-transaction
                      Creates a consistent snapshot by dumping all tables in a
                      single transaction. Works ONLY for tables stored in
                      storage engines which support multiversioning (currently
                      only InnoDB does); the dump is NOT guaranteed to be
                      consistent for other storage engines. While a
                      --single-transaction dump is in process, to ensure a
                      valid dump file (correct table contents and binary log
                      position), no other connection should use the following
                      statements: ALTER TABLE, DROP TABLE, RENAME TABLE,
                      TRUNCATE TABLE, as consistent snapshot is not isolated
                      from them. Option automatically turns off --lock-tables.


导入数据库
首先创建数据库
mysqladmin create databases
(mysqladmin drop databases, mysqladmin processlist)
导入数据
mysqldump -u root -p databases < databases.sql
 
导入表(包含结构及数据)
在数据库下(use database)
source tables.sql
 
遇到问题
1.error: 'Access denied for user ''@'localhost' to database
在http://blog.sina.com.cn/s/blog_6826662b01015brk.html找到的答案,具体什么原因我也不知道
原因是没有权限

具体操作步骤:
关闭mysql:
# service mysqld stop
然后:
# mysqld_safe --skip-grant-tables(单独在一个终端里启动运行)

这里把权限去掉啦
启动mysql:
# service mysqld start

2.mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) when trying to connect
找不到mysql.sock,路径不对
解决办法
ps -ef | grep mysql
找到--socket=/usr/local/mysql5.5/mysql.sock,加在命令的后面即可,如
mysqldump -u root -p --add-locks -d database > dbname.sql --socket=/usr/local/mysql5.5/mysql.sock
 

PS:以上是我在使用过程中的方法和遇到的问题,如果有比这好的方法,欢迎留言
原创粉丝点击