@echo off
mysqladmin -u root --password=admin CREATE TESTDB
mysqladmin -u root --password=admin DROP USER test@"%"
mysqladmin -u root --password=admin CREATE USER test@"%" IDENTIFIED BY test
mysqladmin -u root --password=admin GRANT ALL ON test TO test@'%'
mysql -u root --password=admin TESTDB< c:\test.sql
请指教!!

解决方案 »

  1.   

    mysqladmin -u root --password=admin CREATE TESTDB 
    ------->mysqladmin -u root --password=admin CREATE DATABASE TESTDB 
      

  2.   

    试下吧:
    mysqladmin -u root --password=admin CREATE DATABASE TESTDB 
    mysqladmin -u root --password=admin DROP USER 'test'@'%' 
    mysqladmin -u root --password=admin CREATE USER 'test'@'%' IDENTIFIED BY 'test' 
    mysqladmin -u root --password=admin GRANT ALL ON test.* TO 'test'@'%' 
    mysql -u root --password=admin TESTDB < c:\test.sql 
      

  3.   

    mysqladmin -u root --password=admin GRANT ALL ON test.* TO 'test'@'%'------->mysqladmin -u root --password=admin GRANT ALL ON TESTDB.* TO 'test'@'%' 
      

  4.   

    还是不行呀!我原来的代码,能创建数据库,能导入数据,但不能删除用户,创建用户和授权。用上面的代码出现如下错误:mysqladmin: CREATE DATABASE failed; error: 'Can't create database 'database'; da
    tabase exists'(创建名为database的数据库,所以这里不用加database关键字)
    Dropping the database is potentially a very bad thing to do.
    Any data stored in the database will be destroyed.Do you really want to drop the 'USER' database [y/N] y
    Database "USER" dropped(把USER关建字认成了数据库名)
    mysqladmin: Unknown command: ''test'@'''
    mysqladmin: Unknown command: ''test'@'''
    mysqladmin: Unknown command: 'GRANT'
    ERROR 1049 (42000): Unknown database 'TESTDB'
      

  5.   

    重新改了下:
    mysqladmin -u root --password=admin CREATE TESTDB 
    mysql -u root -p admin -e 'DROP USER "test"@"%"' 
    mysql -u root -p admin -e 'CREATE USER "test"@"%" IDENTIFIED BY "test"' 
    mysql -u root -p admin -e 'GRANT ALL ON TESTDB.* TO "test"@"%"'
    mysql -u root -p admin TESTDB < c:\test.sql 
      

  6.   

    谢谢vinsonshen我用下面语句好像行了,但
    @echo off
    mysql -u root --password=admin < c:\fujitsu.sql
    mysql -u root --password=admin -e "DROP USER 'fujitsu'@'%'"
    mysql -u root --password=admin -e "CREATE USER 'fujitsu'@'%' IDENTIFIED BY 'fujitsu'"
    上面这条语句的执行结果 host成为了空串,并不是%,如把这句单独执行,是正确的执行结果。
    mysql -u root --password=admin -e "GRANT ALL ON fujitsu.* TO 'fujitsu'@'%'"
      

  7.   


    测试没有问题啊[code=BatchFile]C:\Program Files\MySQL\MySQL Server 5.1\bin>mysql -u root --password=123 -e "CRE
    ATE USER 'fujitsu'@'%' IDENTIFIED BY 'fujitsu'"C:\Program Files\MySQL\MySQL Server 5.1\bin>[/code]mysql> select user,host from mysql.user;
    +---------+-----------+
    | user    | host      |
    +---------+-----------+
    | fujitsu | %         |
    ...
    | root    | localhost |
    +---------+-----------+
    5 rows in set (0.00 sec)mysql>
      

  8.   


    单独在提示符下执行那一条命令是正确的,或者写在外部文件中如下执行也是可以的。
    mysql -u root --password=admin < createuser.sql
    但是如果把上面的语句放在一起执行,会创建成
    +---------+-----------+
    | user    | host      |
    +---------+-----------+
    | fujitsu |           |
    真的很怪异
      

  9.   

    你的createuser.sql内容是什么,贴出来,测试一下看看是否有你相同的问题。
      

  10.   


    如下,没什么区别,因为在dos命令行执行的语句就是从我的批处理直接拷的。
    CREATE USER 'fujitsu'@'%' IDENTIFIED BY 'fujitsu'
      

  11.   

    楼主,你能否贴一下你的内容。否则我自己写个BAT文件,结果仍是正常。这样对分析你的问题没什么帮助,反而是浪费时间。提问时提高效率的一个方法首先就是让对方能够在自己的环境中模拟再现你的问题。
      

  12.   

    谢谢ACMAIN_CHM关注不成功BAT(原因是创建用户时%变成了空字符),但单条语句执行正确。
    环境 xp sp3 mysql-5.1.37-win32
    @echo off
    mysql -u root --password=admin < c:\db.sql(导出的数据库sql文(数据库名testDB))
    mysql -u root --password=admin -e "DROP USER 'test'@'%'"
    mysql -u root --password=admin -e "CREATE USER 'test'@'%' IDENTIFIED BY 'test'"(此句错误,%变成了"")
    mysql -u root --password=admin -e "GRANT ALL ON testDB.* TO 'test'@'%'"(上面创建用户时出错,所以授权也不成功)成功的bat文件,我把创建用户的命令提出到createuser.sql文件中。内容如下
    CREATE USER 'test'@'%' IDENTIFIED BY 'test'然后在我的主批处理文件import.bat中如下内容
    @echo off
    mysql -u root --password=admin < c:\db.sql
    mysql -u root --password=admin -e "DROP USER 'test'@'%'"
    mysql -u root --password=admin < createuser.sql
    mysql -u root --password=admin -e "GRANT ALL ON testDB.* TO 'test'@'%'"这样可以正确创建test@%用户,并授权成功。
      

  13.   

    % 在WINDOWS的批处理中有特殊含义,是取参数mysql -u root --password=admin -e "CREATE USER 'test'@'%' IDENTIFIED BY 'test'"
    改成
    mysql -u root --password=admin -e "CREATE USER 'test'@'%%' IDENTIFIED BY 'test'"
      

  14.   

    原来这样呀!明白了,非常感谢ACMAIN_CHM,谢谢!!