扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
如果你正在使用MySQL3.23,你能在不同的支持同样浮点格式的体系结构之间拷贝.frm
、.MYI
和.MYD
。(MySQL考虑了任何字节交换的问题)。
MySQL ISAM
数据“ *.ISD”和索引文件“ *.ISM”文件是依赖于系统结构并在某些情况下依赖于OS。如果你想要移动你的应用程序到有与你当前系统不同的体系结构或OS的其他机器上,你不应该试图通过简单地拷贝文件到另外的机器上来移动一个数据库,相反使用mysqldump
。
缺省地,mysqldump
将创建一个满是SQL语句的文件,然后你可以把文件转移到其他机器上并且把它作为mysql
客户的输入。
试一试mysqldump --help
看可得到什么选项。如果你正在移动数据到一个更新的MySQL版本,你应该用得到的更新的版本使用mysqldump --opt
得到一个快速、紧凑的倒出(dump)。
最容易(尽管不是最快)的在2台机器之间移动一个数据库的方法是在数据库所在的机器上运行下列命令:
shell> mysqladmin -h 'other hostname' create db_name shell> mysqldump --opt db_name \ | mysql -h 'other hostname' db_name
如果你想要在一个慢的网络上从一台远程机器上拷贝一个数据库,你可以使用:
shell> mysqladmin create db_name shell> mysqldump -h 'other hostname' --opt --compress db_name \ | mysql db_name
你也可以在一个文件中存储结果, 然后把文件转移到目标机器并且在那里装载文件到数据库。例如,你能象这样在源机器上倾倒一个数据库到一个文件:
shell> mysqldump --quick db_name | gzip > db_name.contents.gz
(本例创建的文件被压缩) 转移包含数据库内容的文件到目标机器,并且在那里运行这些命令:
shell> mysqladmin create db_name shell> gunzip < db_name.contents.gz | mysql db_name
你也可以使用mysqldump
和mysqlimport
完成数据库转移。对大数据库表,这比简单地使用mysqldump
更快。在下列命令中,DUMPDIR
代表你用来存储来自mysqldump
的输出的目录的完整的路径。
首先,为输出文件和倾倒数据库创建目录:
shell> mkdir DUMPDIR shell> mysqldump --tab=DUMPDIR db_name
然后转移在DUMPDIR
目录下的文件到目标机器的一些相应目录并且在那里装载文件到MySQL:
shell> mysqladmin create db_name # create database shell> cat DUMPDIR/*.sql | mysql db_name # create tables in database shell> mysqlimport db_name DUMPDIR/*.txt # load data into tables
另外,别忘记拷贝mysql
数据库,因为那是授权表(user
、db
、host)被存储的地方。你可能必须作为MySQL root
用户在新机器上运行命令,直到你让mysql
数据库到位。
当你在新机器上导入mysql
数据库后,执行mysqladmin flush-privileges
以便服务器再次装入授权表信息。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者