最近需要在mysql不同数据库间相互导数据,从网上学习了musqldump命令的使用,将使用方式做个记录。
一、mysql命令执行报错
Linux环境下,若运行mysql命令报错:
root@DB-02 ~]# mysql -u root
-bash: mysql: command not found
原因:这是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然会找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件。
首先得知道mysql命令或mysqladmin命令的完整路径,比如mysql的路径是:/usr/local/mysql/bin/mysql,我们则可以这样执行命令:
ln -s /usr/local/mysql/bin/mysql /usr/
二、使用mysqldump导出
命令格式:
mysqldump -u[用户名] -h[ip] --databases 数据库名 --tables 表名 -p >导出的文件名.sql
示例: mysqldump -uroot -h127.0.0.1 --databases databasename --tables table1 table2 -p > /usr/tmp/table_dump.sql
输入root用户的密码之后,即可以将table1\table2的表数据sql导出到 /usr/tmp/路径下 table_dump.sql文件中。
注意:
1、这里的用户和密码是数据库链接用户的用户名和密码,举例中的root用户,并非是linux下的root用户。
2、目标的sql文件需要先在指定目录下创建好。
三、使用mysql导入
命令格式:
mysql -h[ip] -P[(大写)端口] -u[用户名] -p[密码] [数据库名] < d:XX.sql(路径)
示例:mysql -uroot -p -h127.0.0.1 -P3306 databasename </usr/tmp/table_dump.sql