首页 \ 问答 \ 编程未来几年,哪种语言最有前景?

编程未来几年,哪种语言最有前景?

更新时间:2022-11-01 08:11

最满意答案

可以用mysqldump工具
简单用例说明:
导入、导出数据库
导出:  mysqldump -uroot db1 > db1.sql  (注db1为database名)
导入:mysql -uroot test < db1.sql (注test为database名,将db1中所有的表及数据导入到test数据库)
导入、导出表
       导出:mysqldump -uroot db1 tb1 tb2>tables.sql(注db1为database名,tb1 tb2为要导出的表列表,中间用空格隔开)
       导入:mysql -uroot test < tables.sql(将db1数据库中的tb1和tb2表导入到test数据库)

常见参数:
--all-databases  , -A
导出全部数据库。
mysqldump  -uroot -p --all-databases
--all-tablespaces  , -Y
导出全部表空间。
mysqldump  -uroot -p --all-databases --all-tablespaces
--no-tablespaces  , -y
不导出任何表空间信息。
mysqldump  -uroot -p --all-databases --no-tablespaces
--add-drop-database
每个数据库创建之前添加drop数据库语句。
mysqldump  -uroot -p --all-databases --add-drop-database
--add-drop-table
每个数据表创建之前添加drop数据表语句。(默认为打开状态,使用--skip-add-drop-table取消选项)
mysqldump  -uroot -p --all-databases  (默认添加drop语句)
mysqldump  -uroot -p --all-databases –skip-add-drop-table  (取消drop语句)
--databases,  -B
导出几个数据库。参数后面所有名字参量都被看作数据库名。
mysqldump  -uroot -p --databases test mysql
--no-data, -d
不导出任何数据,只导出数据库表结构。
mysqldump  -uroot -p --host=localhost --all-databases --no-data
--host, -h
需要导出的主机信息
mysqldump  -uroot -p --host=localhost --all-databases
--password, -p
连接数据库密码
--port, -P
连接数据库端口号
--set-charset
添加'SET NAMES  default_character_set'到输出文件。默认为打开状态,使用--skip-set-charset关闭选项。
mysqldump  -uroot -p --host=localhost --all-databases 
mysqldump  -uroot -p --host=localhost --all-databases --skip-set-charset
--tables
覆盖--databases (-B)参数,指定需要导出的表名。
mysqldump  -uroot -p --host=localhost --databases test --tables test
--user, -u
指定连接的用户名。

其他回答

定期的备份可使我们数据库崩溃造成的损失大大降低。在mysql中进行数据备份的方法有两种,一种是使用mysqldump程序,一种是使用mysqlhotcopy、cp、tar或cpio等打包程序直接拷贝数据库文件。mysqldump程序备份数据库较慢,但它生成的文本文件便于移植。使用mysqlhotcopy等程序备份速度快,因为它直接对系统文件进行操作,需人为协调数据库数据的备份前后一致性。

使用mysqldump备份数据库其实就是把数据库转储成一系列create table和insert语句,通过这些语句我们就可重新生成数据库。使用mysqldump的方法如下:

% mysqldump --opt testdb | gzip > /data/backup/testdb.bak
#--opt选项会对转储过程进行优化,生成的备份文件会小一点,后的管道操作会进行数据压缩
% mysqldump --opt testdb mytable1,mytable2 | gzip > /data/backup/testdb_mytable.bak
#可在数据库后接数据表名,只导出指定的数据表,多个数据表可用逗号分隔

--opt选项还可激活--add-drop-table选项,它将会在备份文件的每条create table前加上一条drop table if exists语句。这可方便进行数据表的更新,而不会发生“数据表已存在”的错误。 

用mysqldump命令还可直接把数据库转移到另外一台服务器上,不用生成备份文件。重复执行可定期更新远程数据库。

% mysqladmin -h remote_host create testdb
% mysqldump --opt testdb | mysql -h remote_host testdb
另外还可通过ssh远程调用服务器上的程序,如:
% ssh remote_host mysqladmin create testdb
% mysqldump --opt testdb | ssh remote_host mysql testdb

通过直接拷贝系统文件的方式备份数据库,在备份时,要确保没有人对数据库进行修改操作。要做到这点,最好关闭服务器。如果不能关闭的,要以只读方试锁定有关数据表。下面是一些示例:

% cp -r db /backup/db                   #备份db数据库到/backup/db目录
% cp table_name.* /backup/db            #只备份table_name数据表
% scp -r db remotehot:/usr/local/mysql/data        #用scp把数据库直接拷贝到远程服务器

在把数据库直接拷贝到远程主机时,应注意两台机器必须有同样的硬件结构,或者将拷贝的数据表全部是可移植数据表类型。 

使用mysqlhotcopy工具,它是一个perl dbi脚本,可在不关闭服务器的情况下备份数据库,它主要的优点是:

它直接拷贝文件,所以它比mysqldump快。

可自动完成数据锁定工作,备份时不用关闭服务器。

能刷新日志,使备份文件和日志文件的检查点能保持同步。

下面是该工具的使用示例:

% mysqlhotcopy db    /bakcup/                   #把db数据库备份到backup/db目录里,会自动创建一个db目录

使用backup table语句进行备份,该语句最早出现在mysql 3.23.25版本中,仅适用于myisam数据表。用法如下:

mysql> backup table mytable to '/backup/db';           #把mytable数据表备份到/backup/db目录下

为了执行该语句,你必须拥有那些表的file权限和select权限,备份目录还必须是服务器可写的。该语句执行时,会先把内存中的数据写入磁盘,再把各个数据表的.frm(表结构定义文件)、.myd(数据)文件从数据目录拷贝到备份目录。它不拷贝.myi(索引)文件,因为它能用另外两个文件重建。backup table语句备份时,依次锁定数据表,当同时备份多个数据表时,数据表可能会被修改,所以备份0完成时,备份文件中的数据和现时数据表中的数据可能会有差异,为了消除该差异,我们可用只读方式锁定数据表,在备份完成后再解锁。如:

mysql> lock tables tb1 read,tb2 read;
mysql> backup table tb1,tb2 to 'backup/db';
mysql> unlock tables;

使用backup table语句备份的数据表可用restore table重新加载到服务器。

innodb和bdb数据库也可用mysqldump和直接拷贝法进行备份。使用直接拷贝法时应注意需把组成innodb和bdb数据库的所有文件都拷贝下来,如innodb的.frm文件、日志文件和表空间配置文件;bdb的数据文件、日志文件等。

使用镜像机制进行备份,我们可用slave stop语句挂起从服务器的镜像,在从服务器上通过直接拷贝法或其它工具制作备份。备份完成,用slave start重新启动镜像,从服务器重新与主服务器同步,接收备份时主服务器所做的修改。

在mysql中没有为数据库重命名的命令,但我们可用mysqldump转储数据库,再创建一个新的空数据库,把转储文件加载到该新数据库,这样就完成数据库重命名的工作。如:

% mysqldump old_db >db.sql            #转储db数据库数据
% mysqladmin create new_db            #新建一个空的数据库
% mysql new_db < db.sql               #把db数据库的数据加载到新的数据库中
% mysqladmin drop old_db              #删除旧的数据库

一个更简单的重命名数据库的方法是直接修改数据库目录名,但该方法不适用于innodb和bdb数据库。注意,在更名后,需在权限表中更新相关数据表信息,需执行以下语句:

mysql> update db set db='new_db' where db='old_db';
mysql> update tables_priv set db='new_db' where db='old_db';
mysql> update columns_priv set db='new_db' where db='old_db';
mysql> update host set db='new_db' where db='old_db';

相关问答

更多
  • 数据库的自动备份,可以减轻维护者的工作量也便于系统恢复,对于比较重要的数据库,最好还是设置下自动备份。 工具/原料 navicat for mysql mysql 5.5 方法/步骤 1. 打开navicat客户端,连上mysql后,双击左边你想要备份的数据库。点击“计划”,再点击“新建批处理作业”。 2. 双击上面的可用任务,它就会到下面的列表里去,代表你选择了这个任务。 3. 点击保存,弹出个命名对话框,给这个任务取个名字,点击“确定” 4. 点击“设置”计划任务。 5. 弹出的对话框,选择“计划”,再 ...
  • 一般来说专业的正规的备份MYSQL数据库的方法是通过PHPMYADMIN这个工具,下载最新版本的PHPMYADMIN后将他解压缩到网站发布文件夹中,例如www目录是发布目录,那么就把phpmyadmin解压缩到此目录中。接下来我们通过http://ip地址/phpmyadmin来访问PHPMYADMIN管理程序。如果是虚拟主机的话也可以直接把PHPMYADMIN程序上传到虚拟空间中,访问PHPMYADMIN的方法和上面介绍的一样。【下面以DZ论坛备份介绍一下使用】第一步:登录PHPMYADMIN管理界面后选 ...
  • 假如是用PHPMYADMIN的话就直接upload就可以了假如用的是虚拟空间的话后台应当有控制面板,有立案MYSQL功能的
  • 在Linux上安装MySQL并建立测试库,编写shell脚本对此库使用mysqldump进行定时备份和历史备份文件清理(保留3天),注意脚本的通用性和扩展性 1 mysq数据库的安装 [sql] view plain copy #安装服务端 yum install mysql-server yum install mysql-devel #安装客户端 yum install mysql #启动mysql service mysqld start 或 /etc/init.d/mysqld start #停止m ...
  • mysql数据库备份[2022-10-31]

    第一个问题:直接复制数据库文件没有备份数据库结构啊,使用mysqldump可以完整的导出数据库。 第二个问题:当内存中还有数据未写入时在备份,MySQL数据库是不完整的,没有备份到全部呢,意思是没有热备份 MySQL数据库备份可以用多备份,挺好用的,也可以实现热备份,保证数据的完整性和安全性
  • windows下: 具体来说,我们若需利用任务计划程序自动运行则应执行如下步骤: 1.单击“开始”按钮,然后依次选择“程序”→“附件”→“系统工具”→“任务计划”(或者是“设置”→“控制面板”→“任务计划”),启动Windows 2000的任务计划管理程序。 2.在“任务计划”窗口中双击“添加任务计划”图标,启动系统的“任务计划向导”,然后单击“下一步”按钮,在给出的程序列表中选择需要自动运行的应用程序,然后单击“下一步”按钮。 设置适当的任务计划名称并选择自动执行这个任务的时间频率(如 ...
  • MYSQL备份数据库[2021-10-03]

    定期的备份可使我们数据库崩溃造成的损失大大降低。在MySQL中进行数据备份的方法有两种,一种是使用mysqldump程序,一种是使用mysqlhotcopy、cp、tar或cpio等打包程序直接拷贝数据库文件。mysqldump程序备份数据库较慢,但它生成的文本文件便于移植。使用mysqlhotcopy等程序备份速度快,因为它直接对系统文件进行操作,需人为协调数据库数据的备份前后一致性。 使用mysqldump备份数据库其实就是把数据库转储成一系列CREATE TABLE和INSERT语句,通过这些语句我 ...
  • MYSQL备份数据库[2021-12-26]

    定期的备份可使我们数据库崩溃造成的损失大大降低。在MySQL中进行数据备份的方法有两种,一种是使用mysqldump程序,一种是使用mysqlhotcopy、cp、tar或cpio等打包程序直接拷贝数据库文件。mysqldump程序备份数据库较慢,但它生成的文本文件便于移植。使用mysqlhotcopy等程序备份速度快,因为它直接对系统文件进行操作,需人为协调数据库数据的备份前后一致性。 使用mysqldump备份数据库其实就是把数据库转储成一系列CREATE TABLE和INSERT语句,通过这些语句我们 ...
  • 备份: mysqldump -u test -p test > test.sql 执行命令时会提示输入test用户密码,输入对应密码就行了 恢复: mysql -u test -p test1< test.sql 命令中-p 后面的test1为要恢复的数据库名。执行时同样提示输入test用户密码。
  • 用帝国备份王 phpmyadmin针对于100M以上的数据库 在网速不好的情况下老挂掉落 我如今都用帝国备份王 很爽的 备份三五百兆的数据库不是问题

相关文章

更多

最新问答

更多
  • 您如何使用git diff文件,并将其应用于同一存储库的副本的本地分支?(How do you take a git diff file, and apply it to a local branch that is a copy of the same repository?)
  • 将长浮点值剪切为2个小数点并复制到字符数组(Cut Long Float Value to 2 decimal points and copy to Character Array)
  • OctoberCMS侧边栏不呈现(OctoberCMS Sidebar not rendering)
  • 页面加载后对象是否有资格进行垃圾回收?(Are objects eligible for garbage collection after the page loads?)
  • codeigniter中的语言不能按预期工作(language in codeigniter doesn' t work as expected)
  • 在计算机拍照在哪里进入
  • 使用cin.get()从c ++中的输入流中丢弃不需要的字符(Using cin.get() to discard unwanted characters from the input stream in c++)
  • No for循环将在for循环中运行。(No for loop will run inside for loop. Testing for primes)
  • 单页应用程序:页面重新加载(Single Page Application: page reload)
  • 在循环中选择具有相似模式的列名称(Selecting Column Name With Similar Pattern in a Loop)
  • System.StackOverflow错误(System.StackOverflow error)
  • KnockoutJS未在嵌套模板上应用beforeRemove和afterAdd(KnockoutJS not applying beforeRemove and afterAdd on nested templates)
  • 散列包括方法和/或嵌套属性(Hash include methods and/or nested attributes)
  • android - 如何避免使用Samsung RFS文件系统延迟/冻结?(android - how to avoid lag/freezes with Samsung RFS filesystem?)
  • TensorFlow:基于索引列表创建新张量(TensorFlow: Create a new tensor based on list of indices)
  • 企业安全培训的各项内容
  • 错误:RPC失败;(error: RPC failed; curl transfer closed with outstanding read data remaining)
  • C#类名中允许哪些字符?(What characters are allowed in C# class name?)
  • NumPy:将int64值存储在np.array中并使用dtype float64并将其转换回整数是否安全?(NumPy: Is it safe to store an int64 value in an np.array with dtype float64 and later convert it back to integer?)
  • 注销后如何隐藏导航portlet?(How to hide navigation portlet after logout?)
  • 将多个行和可变行移动到列(moving multiple and variable rows to columns)
  • 提交表单时忽略基础href,而不使用Javascript(ignore base href when submitting form, without using Javascript)
  • 对setOnInfoWindowClickListener的意图(Intent on setOnInfoWindowClickListener)
  • Angular $资源不会改变方法(Angular $resource doesn't change method)
  • 在Angular 5中不是一个函数(is not a function in Angular 5)
  • 如何配置Composite C1以将.m和桌面作为同一站点提供服务(How to configure Composite C1 to serve .m and desktop as the same site)
  • 不适用:悬停在悬停时:在元素之前[复制](Don't apply :hover when hovering on :before element [duplicate])
  • 常见的python rpc和cli接口(Common python rpc and cli interface)
  • Mysql DB单个字段匹配多个其他字段(Mysql DB single field matching to multiple other fields)
  • 产品页面上的Magento Up出售对齐问题(Magento Up sell alignment issue on the products page)