我想使用grunt-shell
将数据库导入远程服务器。
这就是我的尝试:
shell: {
install_db: {
options: {
stdout: true,
stderr: true
},
command: [
"ssh user@demo.server.it mysql < /Volumes/www/database/mydb.sql --database db_test -u root -p password",
].join("&&")
}
}
在我的远程服务器中,我有一个名为root
的数据库用户,他拥有所有的私有权。
当我像
那样运行果实时grunt shell
我检索到这个错误:
Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
但我认为那个用户是正确的。 我也尝试过:
"ssh user@demo.server.it mysql < /Volumes/www/database/mydb.sql --database db_test -u root -p",
和
"ssh user@demo.server.it",
"sudo mysql < /Volumes/www/database/mydb.sql --database db_test -u root -p password",
它没有在我的远程服务器中导入我的sql文件。
我已经创建了该数据库。
我该如何解决?
答案 0 :(得分:2)
我建议重置root密码,这在Windows 7,MySQL 5.5.37
中适用于我停止MySQL进程/服务
禁用授权表格检查:
在 Windows 中转到
C:\Program Files\MySQL\MySQL Server 5.5\my.ini
在 Linux
中/etc/mysql/my.cnf
在他的[mysqld]部分下添加skip-grant-tables
[mysqld]
skip-grant-tables
重启MySQL进程/服务
转到MySQL提示符,因为您已禁用授权表检查
,所以不需要用户/密码C:&GT; MySQL的
执行以下命令,替换&#39; your_secret_password&#39;相应
UPDATE mysql.user SET Password = PASSWORD(&#39; your_secret_password&#39;)WHERE User =&#39; root&#39 ;; FLUSH PRIVILEGES;
退出MySQL提示
启用授权表检查:从my.ini或my.cnf中删除
行跳过授权-表
重启MySQL进程/服务