小洪維尼 发表于 2018-9-29 09:51:31

mysql中source用法一瞥

  1、source语法如下
  Usage:
  mysql>.| source
  举例
  mysql>. /usr/local/mysql/aa.sql
  Query OK, 0 rows affected (0.01 sec)
  2、直接使用source filename或者. filename,怎么去实现?
  首先查看mysql基目录和数据目录:
  mysql> show variables like 'basedir';
  +---------------+------------------+
  | Variable_name | Value            |
  +---------------+------------------+
  | basedir       | /usr/local/mysql |
  +---------------+------------------+
  1 row in set (0.01 sec)
  mysql> show variables like 'datadir';
  +---------------+------------------+
  | Variable_name | Value            |
  +---------------+------------------+
  | datadir       | /opt/mysql/data/ |
  +---------------+------------------+
  1 row in set (0.00 sec)
  把aa.sql文件分别放在该目录下:
  mysql> . aa.sql
  ERROR:
  Failed to open file 'aa.sql', error: 2
  查看当前登陆位置:
  mysql> system pwd;
  /home
  mysql>
  把aa.sql文件放在home目录下,再次执行source指令:
  mysql> . aa.sql
  Query OK, 0 rows affected (0.02 sec)
  mysql> show tables;
  +--------------------+
  | Tables_in_iloveyou |
  +--------------------+
  | emp                |
  +--------------------+
  1 row in set (0.00 sec)
  3、完整示例
  # mkdir rgf
  # cd rgf
  # cp /home/aa.sql .
  # pwd
  /opt/rgf
  # mysql -uroot -p
  Enter password:
  Welcome to the MySQL monitor.Commands end with ; or g.

  Your MySQL connection>  Server version: 5.5.37-log Source distribution
  Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
  Oracle is a registered trademark of Oracle Corporation and/or its
  affiliates. Other names may be trademarks of their respective
  owners.
  Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
  mysql> use rgf;
  Database changed
  mysql> source aa.sql;
  Query OK, 0 rows affected (0.01 sec)
  4、注意事项
  (a)使用source时,文件最后使用;分号和不适用分号语法都正确
  mysql> source aa.sql;
  Query OK, 0 rows affected (0.01 sec)
  mysql> drop table emp;
  Query OK, 0 rows affected (0.00 sec)
  mysql> source aa.sql
  Query OK, 0 rows affected (0.01 sec)
  (b)使用.时,语句结尾不能使用分号;
  mysql> . aa.sql
  Query OK, 0 rows affected (0.01 sec)
  mysql> drop table emp;
  Query OK, 0 rows affected (0.01 sec)
  mysql> . aa.sql;
  ERROR:
  Failed to open file 'aa.sql;', error: 2
  5、小结
  source执行的当前目录即为启动mysql登陆时所处的位置。如果不想直接输入一大串目录执行sql文件,可以事先在指定位置创建好文件夹,在文件夹中创建脚本,并从文件夹位置登陆mysql。这也是一种处理问题的方法。另外还要注意source和.的语句结尾是否要带分号。有兴趣的伙伴可以试试。

页: [1]
查看完整版本: mysql中source用法一瞥