本文共 3008 字,大约阅读时间需要 10 分钟。
备份单个数据库的数据和结构(,数据库名mydb)
mysqldump -u用戶名 -p密码 -d 数据库名 表名 > 脚本名;
导出整个数据库结构和数据mysqldump -h localhost -uroot -p123456 database > dump.sqlmysqldump -h '192.168.1.191' -uroot -p111111 js_namc>/tmp/js_namc.sql
导出单个数据表结构和数据
mysqldump -h localhost -uroot -p123456 database table > dump.sqlmysqldump -h '172.16.7.16' -uroot -pnsv_2018 gx_nae_online ad_user > /tmp/ad_user.sql
导出整个数据库结构(不包含数据)
mysqldump -h localhost -uroot -p123456 -d database > dump.sql
导出单个数据表结构(不包含数据)
mysqldump -h localhost -uroot -p123456 -d database table > dump.sql
还原单个数据库(需指定数据库)
mysql>use namcmysql>source /tmp/js_namc.sql
常见选项:
--all-databases, -A: 备份所有数据库--databases, -B: 用于备份多个数据库,如果没有该选项,mysqldump把第一个名字参数作为数据库名,后面的作为表名。使用该选项,mysqldum把每个名字都当作为数据库名。--force, -f:即使发现sql错误,仍然继续备份--host=host_name, -h host_name:备份主机名,默认为localhost--no-data, -d:只导出表结构--password[=password], -p[password]:密码--port=port_num, -P port_num:制定TCP/IP连接时的端口号--quick, -q:快速导出--tables:覆盖 --databases or -B选项,后面所跟参数被视作表名--user=user_name, -u user_name:用户名--xml, -X:导出为xml文件
为了方便快速复制一个数据库,可以用以下命令
将db1数据库的数据以及表结构复制到newdb数据库创建新的数据库
mysql -u root -p123456mysql>CREATE DATABASE 'gx_namc_omline' DEFAULT CHARACTER SET UTF8 COLLATE UTF8_GENERAL_CI;mysql>CREATE DATABASE IF NOT EXISTS tj_vote DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
复制数据库,使用mysqldump及mysql的命令组合,一次性完成复制
mysqldump gx_namc -u root -pnsv_2018 --add-drop-table | mysql gx_namc_online -u root -pnsv_2018
注意-p123456参数的写法:-p后面直接跟密码,中间没有空格
以上是在同一台MySQL服务器上复制数据库的方法。如果要复制到远程另一台MySQL服务器上,可以使用mysql的“ -h 主机名/ip”参数。前提是mysql允许远程连接,且远程复制的传输效率和时间可以接受。
不在同一个mysql服务器上
mysqldump db1 -uroot -p123456 --add-drop-table | mysql -h 192.168.1.22 newdb -u root -p123456
刚刚开始研究mysql数据库时,经常遇到服务启动失败错误:
mysqld服务启动失败, Failed to restart mysqld.service: Unit not found.-bash-4.2# service mysqld restart Redirecting to /bin/systemctl restart mysqld.serviceFailed to restart mysqld.service: Unit not found.并不存在 mysqld 的服务,
复制代码
-bash-4.2# chkconfig --listNote: This output shows SysV services only and does not include native systemd services. SysV configuration data might be overridden by native systemd configuration. If you want to list systemd services use 'systemctl list-unit-files'. To see services enabled on particular target use 'systemctl list-dependencies [target]'.aegis 0:off 1:off 2:on 3:on 4:on 5:on 6:offagentwatch 0:off 1:off 2:on 3:on 4:on 5:on 6:offiprdump 0:off 1:off 2:on 3:on 4:on 5:on 6:offiprinit 0:off 1:off 2:on 3:on 4:on 5:on 6:offiprupdate 0:off 1:off 2:on 3:on 4:on 5:on 6:offjexec 0:off 1:on 2:on 3:on 4:on 5:on 6:offmysql.server 0:off 1:off 2:on 3:on 4:on 5:on 6:offnetconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:offnetwork 0:off 1:off 2:on 3:on 4:on 5:on 6:off
可见,服务名不是mysqld 而是 mysql.server
于是:-bash-4.2# service mysql.server restart Shutting down MySQL....[ OK ]Starting MySQL.[ OK ]
转载地址:http://ffzeo.baihongyu.com/