bat:
@echo off
set /p name = 用户名:
set /p pwd = 密码:
set /p dbName = 数据库:
mysql -u %name% -p %pwd% %dbName% < mydb.sql
pause > nul执行后的结果
ERROR 1045 (28000): Access denied for user '-p'@'localhost' (using password: NO)
貌似mysql -u %name% -p %pwd% %dbName% < mydb.sql中的%*%都无效 ,望高手解答 谢谢!

解决方案 »

  1.   

    Access denied for user '-p'@'localhost'
    没有权限登录, 找找如何正常登录再回来看你的bat文件吧、
      

  2.   

    set /p name=用户名:
    set /p pwd=密码:
    set /p dbName=数据库:
    mysql -u%name% -p%pwd% %dbName%<mydb.sql
      

  3.   

    不行的 ,好像mysql -u 这样的语句中已经无法解析dos下的%name%、 %dbName% 这样的东西了 郁闷
      

  4.   

    sigh, 你的批处理本身有不少空格吧。
    拷贝下边文本再试试@echo off
    set /p name=用户名:
    set /p pwd=密码:
    set /p dbName=数据库:
    mysql -u%name% -p%pwd% %dbName% < mydb.sql
    rem mysql -u%name% -p%pwd% %dbName% < mydb.sqlpause > nul
      

  5.   

    测试是可以的,注意空格
    set /p name=用户名:
    set /p pwd=密码:
    set /p dbName=数据库:
    mysql -u%name% -p%pwd% %dbName%<mydb.sql
      

  6.   


    执行结果 ERROR 1045 (28000): Access denied for user '-p'@'localhost' (using password: NO) 无语了。
    算了 我自己找找吧 ~
      

  7.   

    楼主自己没有仔细看贴,你把5楼的拷贝一遍吧,我已经试过了的。你的name, pwd, dbName每一行都有多的空格,想必以前是从别处拷贝的吧。
    为何自己不好好试试呢。
    在执行命令之前,完全可以把命令echo出来啊。
    不说什么了。
      

  8.   


    iihero兄教训的是,果然是每行的空格造成的 多谢多谢了!