MySQL/Databases manipulation

创建

编辑
 CREATE DATABASE database;

需要特权。

mysqladmin create是该函数的命令行包装器。

MySQL中, CREATE SCHEMA同义于CREATE DATABASE

删除

编辑
 DROP DATABASE database;

需要特权。

mysqladmin drop是该函数的命令行包装器。命令行选项-f抑制交互式确认,用于无人在场的脚本。

更名

编辑

SQL语言现在不能直接做数据库更名。[1].

替代方法:

 mysqladmin create name2
 mysqldump --opt name1 | mysql name2
 mysqladmin drop -f name1

或者文件夹直接更名:

 cd /var/lib/mysql/
 /etc/init.d/mysql stop
 mv name1/ name2/
 /etc/init.d/mysql start

还需要更新特权的授权:

 UPDATE mysql.db SET `Db`='name2' WHERE `Db`='name1';
 FLUSH PRIVILEGES;

复制

编辑

MySQL没有直接做数据库复制的语句。

mysqldump

编辑

mysqldump命令行产生一个文件数据库拷贝。可重注入其他数据库。

# First, clean-up the target database:
 mysqladmin drop -f base2
 mysqladmin create base2
# Copy base1 to base2:
 mysqldump --opt base1 | mysql base2

备份

编辑

在Linux上每天午夜自动备份:[2]

 $ crontab -e
0 0 * * * /usr/local/bin/mysqldump -uLOGIN -PPORT -hHOST -pPASS base1 | gzip -c > `date “+\%Y-\%m-\%d”`.gz

恢复

编辑
mysql -h localhost -u root MaBase < MaBase.sql 

从其他数据库迁移

编辑

Template:...

工具: MySQL Migration Toolkit

数据建模工具

编辑
  • MySQL Query Browser包含 MySQL Table Editor 模块
  • Kexi (wikipedia: Kexi)


MySQL Workbench

编辑

参考文献

编辑
  1. https://dev.mysql.com/doc/refman/5.1/en/rename-database.html
  2. http://stackoverflow.com/questions/6645818/how-to-automate-database-backup-using-phpmyadmin