迁移数据库需要用什么方法_数据库迁移有哪些方法
美国Microsoft公司推出的一种关系型数据库系统。那么数据库如何迁移呢?下面由学习啦小编为大家整理的数据库迁移的方法,希望大家喜欢!
数据库迁移的方法
方法一:脚本法
如果你的数据库每天都有更新,而且今天改动量不大,可以将你所有的改动弄成脚本,放到本地数据库执行即可。就行一般公司开发写数据库发布脚本一样。
方法二:备份与还原法
在服务器的数据库中选中要转移的数据库,按鼠标右键,选所有任务->备份数据库;将备份copy到本地,选中本地已有的数据库(没有需要新建)右键→任务→还原数据库。
找到你copy下来的.bak文件即可,值得提醒是,有时候会出现错误:2个数据库不是一个数据库。这种情况点 →选项 勾上 覆盖现有数据库即可。
方法三:如果只是将服务器上的数据库copy到本地数据库
则右键→导出数据,按照向导导到对应的本地数据库(前提是本地数据库没有数据,如果有数据,他不会覆盖会出现2条相同的记录),而且完了之后还得到处所有的函数和存储过程,所以该方法不推荐。
方法四:附加法
首先分离数据库连接,然后将数据库文件(.mdf文件)copy到本地,然后右键→附加 找到该.mdf文件即可
保护MySQL数据库
一、删除授权表中的通配符
MySQL访问控制系统通过一系列所谓的授权表运行,从而对数据库、表格或栏目级别的用户访问权利进行定义。但这些表格允许管理员为一名用户设定一揽子许可,或一组应用通配符的表格。这样做会有潜在的危险,因为黑客可能会利用一个受限的账户来访问系统的其他部分。由于这一原因,在设置用户特权时要谨慎,始终保证用户只能访问他们所需的内容。在给个别用户设定超级特权时要尤其小心,因为这种级别允许普通用户修改服务器的基本配置,并访问整个数据库。
建议:对每个用户账户应用显示特权命令,以审查授权表,了解应用通配符许可是否恰当。
二、要求使用安全密码
用户账号的安全与用来保护它们的密码密切相关。因此,在安装MySQL时第一件事就应该设置MySQL根账号的密码(默认为空)。修复这一漏洞后,接下来就应要求每个用户账号使用一个密码,且不要使用生日、用户名或字典中的单词这些容易识别的启发式密码。
建议:应用MySQL-安全-授权选项避免使用旧的,不大安全的MySQL密码格式。
三、检查配置文件许可
一般来说,要使服务器连接更为快速方便,单个用户和服务器管理员必须把他们的用户账号密码存储在单用户MySQL选项文件中。但是,这种密码是以纯文本形式存储在文件中的,很容易就可以查阅。因此,必须保证这样的单用户配置文件不被系统中的其他用户查阅,且将它存储在非公共的位置。理想情况下,你希望单用户配置文件保存在用户的根目录,许可为0600。
四、加密客户与服务器之间数据传送 :
MySQL(及其它)客户与服务器构架的一个重要问题就是通过网络传送数据时的安全问题。如果客户与服务器间的交互以纯文本形式发生,黑客就可能“嗅出”被传送的数据包,从而获得机密信息。你可以通过激活MySQL配置中的SSL,或应用一个OpenSSH这样的安全应用来为传送的数据建立一个安全的加密“通道”,以关闭这一漏洞。以这种形式加密客户与服务器连接可使未授权用户极难查阅往来的数据。
五、禁止远程访问
如果用户不需要远程访问服务器,你可以迫使所有MySQL连接通过UNIX插槽文件来完成,从而大大减少网络受攻击的风险。这一过程可通过跳过网络选项启动服务器来完成。这样可以阻止TCP/IP网络连接到MySQL上,保证没有用户可以远程连接系统。
建议:可以在MySQL服务器配置中添加捆绑地址127.0.0.1指令来增强这一功能,迫使MySQL捆绑当地机器的IP地址来保证只有同一系统中的用户可以连接到MySQL。
六、积极监控MySQL访问记录
MySQL中带有很多不同的日志文件,它们记录客户连接,查询和服务器错误。其中,最重要的是一般查询日志,它用时间标签记录每名客户的连接和中断时间,并记录客户执行的每个查询。如果你怀疑发生了不寻常的行为,如网络入侵,那么监控这个日志以了解行为的来源是个好方法。
修改解除MYSQL密码的方法
方法一
使用phpmyadmin,这是最简单的了,修改mysql库的user表,不过别忘了使用PASSWORD函数。
方法二
使用mysqladmin,这是前面声明的一个特例。
mysqladmin -u root -p password mypasswd
输入这个命令后,需要输入root的原密码,然后root的密码将改为mypasswd。
把命令里的root改为你的用户名,你就可以改你自己的密码了。
当然如果你的mysqladmin连接不上mysql server,或者你没有办法执行mysqladmin,那么这种方法就是无效的,而且mysqladmin无法把密码清空。
下面的方法都在mysql提示符下使用,且必须有mysql的root权限:
方法三
mysql> Insert INTO mysql.user (Host,User,Password)
VALUES(%,jeffrey,PASSWORD(biscuit));
mysql> FLUSH PRIVILEGES
确切地说这是在增加一个用户,用户名为jeffrey,密码为biscuit。在《mysql中文参考手册》里有这个例子,注意要使用PASSWORD函数,然后还要使用FLUSH PRIVILEGES。
方法四
和方法三一样,只是使用了REPLACE语句
mysql> REPLACE INTO mysql.user (Host,User,Password)
VALUES(%,jeffrey,PASSWORD(biscuit));
mysql> FLUSH PRIVILEGES
方法五
使用SET PASSWORD语句
mysql> SET PASSWORD FOR jeffrey@"%" = PASSWORD(biscuit);
拟也必须使用PASSWORD()函数,但是不需要使用FLUSH PRIVILEGES。
方法六
使用GRANT ... IDENTIFIED BY语句
mysql> GRANT USAGE ON *.* TO jeffrey@"%" IDENTIFIED BY biscuit;
这里PASSWORD()函数是不必要的,也不需要使用FLUSH PRIVILEGES。
注意:PASSWORD() [不是]以在Unix口令加密的同样方法施行口令加密。