shell 报错'@'localhost' (using password: YES)'root

shell中写了简单的一段

energy.sh内容:

#!/bin/bash
host=127.0.0.1
user=******
passwd=******
dbname=******
tablename=device_value_300sct007p01_year
MONTH=$(date +%Y-%m)
sqlstr="insert into device_value_300sct007p01_year (id,year,month,device_id,device_value_id,value,type) select replace(uuid(), ‘-‘, ‘‘),substring(month,1,4),month,device_id,device_value_id,sum(value),type from device_value_300sct007p01_month where month = ${MONTH} group by month,device_id,device_value_id"
mysql -h $host -u$user -p$passwd -D $dbname -e ‘select * from device_value_300sct007p01_year‘

最简单的一个查询,就是报错‘@‘localhost‘ (using password: YES)‘root ,用户名密码都正确
最后发现原因:多了\r,脚本是在windows下写的,由于windows和linux换行符不一致导致

sh  -x energy.sh

+ host=$‘127.0.0.1\r‘
+ user=$‘******\r‘
+ passwd=$‘******\r‘
+ dbname=$‘******\r‘
+ tablename=$‘device_value_300sct007p01_year\r‘
++ date +%Y-%m
+ MONTH=$‘2015-03\r‘
+ sqlstr=‘insert into device_value_300sct007p01_year (id,year,month,device_id,device_value_id,value,type) select replace(uuid(), ‘\‘‘-‘\‘‘, ‘\‘‘‘\‘‘),substring(month,1,4),month,device_id,devi‘group by month,device_id,device_value_idalue_300sct007p01_month where month = 2015-03
++ -h $‘127.0.0.1\r‘ $‘-uroot\r‘ $‘-pyunho201311\r‘ -D $‘xcloud\r‘ -e ‘select * from device_value_300sct007p01_year‘
energy.sh: line 9: -h: command not found
+ mysql $‘\r‘
ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: NO)

每个变量后都多了\r,导致用户名密码错误
解决方法:

删除文件中的\r

tr -d "\r" <energy.sh  >energy1.sh

再次运行

sh  energy1.sh

+----------------------------------+------+---------+--------------------+-----------------+-------+------+
| id                               | year | month   | device_id          | device_value_id | value | type |
+----------------------------------+------+---------+--------------------+-----------------+-------+------+
| a9be43fcd5cfc6c3e7e07aac6fd20621 | 2015 | 2015-02 | 110000001000000031 |               1 |  2.00 | sum  |
| a9be43fcd5cfc6c3e7e07aac6fd20622 | 2015 | 2015-03 | 110000001000000031 |               1 |  3.00 | sum  |
| a9be43fcd5cfc6c3e7e07aac6fd20623 | 2015 | 2015-04 | 110000001000000031 |               1 |  4.00 | sum  |
| a9be43fcd5cfc6c3e7e07aac6fd20627 | 2015 | 2015-01 | 110000001000000031 |               1 |  1.00 | sum  |
+----------------------------------+------+---------+--------------------+-----------------+-------+------+

shell 报错'@'localhost' (using password: YES)'root

时间: 2024-11-09 19:18:49

shell 报错'@'localhost' (using password: YES)'root的相关文章

最新 mysql登录报错“Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password: NO”的处理方法

1.关闭正在运行的MySQL.2.打开DOS窗口,转到mysql\bin目录.3.输入mysqld --skip-grant-tables回车.如果没有出现提示信息,那就对了.4.再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysql\bin目录.5.输入mysql回车,如果成功,将出现MySQL提示符 <6. 连接权限数据库<use mysql; (<是本来就有的提示符,别忘了最后的分号)6.改密码:update MySQL.user set authenticati

mysql登录报错“Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password: YES”的处理方法

使用/etc/mysql/debian.cnf文件中[client]节提供的用户名和密码: 文件内容: [client]host = localhostuser = debian-sys-maint   //用户名password = Xgsuj2n8rlvw7jUO  //密码socket = /var/run/mysqld/mysqld.sock[mysql_upgrade]host = localhostuser = debian-sys-maintpassword = Xgsuj2n8r

关于Linux下面msyql安装后并未设置初始密码,但是登录报错“Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password: NO)”的解决方案

如上图:首先我安装mysql的时候并没有设置密码,但是就是登不进去,百度了一下,解决方案如下: 解决方案地址:http://zhidao.baidu.com/link?url=7QvuOKtfRdMTyFCsOf_6Bbb6pHGUxzyr5_afFGLiX_WAD6JJ4MCmepriWnzIo-kEAetXCLsRRhIidzxbL6zTnnJlP3HbYh2DDLZOEbOvBji 关于Linux下面msyql安装后并未设置初始密码,但是登录报错"Access denied for use

连接mysql报错Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password: YES)解决办法

1.打开MySQL目录下的my.ini文件,在文件的最后添加一行"skip-grant-tables"(免密码登录),保存并关闭文件,重启MySQL服务. 2.通过命令行进入MySQL的BIN目录,输入"mysql -u root -p"(不输入密码),回车即可进入数据库. 3.执行"use mysql;",使用mysql数据库. 4.修改密码:执行" update MySQL.user set authentication_strin

Windows下mysql无法启动1067错误 以及 登录报错Access denied for user ‘root’@‘localhost’ (using password:YES)

Windows下mysql无法启动1067错误解决: 解决步骤: 1.  找到自己的mysql安装目录,比如,我的是D:\MySQL\MySQL Server 5.5 2.  打开my.ini文件 3.  找到 #Path to the database root这一行,将 datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"    修改为自己mysql安装目录下的  datadir="D:/MySQL/MySQL Ser

linux mysql报错Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password: YES)

1.service mysqld stop停止mysql服务器 2.find / -name my.cnf 查找mysql配置文件的位置打开 3.在[mysqld]后添加skip-grant-tables 4.启动mysql :service mysqld start ————————————————版权声明:本文为CSDN博主「awake720」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明.原文链接:https://blog.csdn.net/awake

网站报错Access denied for user &#39;root&#39;@&#39;localhost&#39; -问题排查续

网站报错Access denied for user 'root'@'localhost' (using password: YES) 每次的挽救办法就是: /etc/init.d/mysqld stop mysqld_safe --skip-grant-tables & 几乎每隔10分钟就出现一次,如下图,然后手动安全模式重启mysql.偶的内心好崩溃... 不得不赞阿里云的售后技术支持太给力!耐心回复我的一个个小白问题. 总结一下, 问题原因:本地授权问题 解决办法:“您目前启动到mysql

解决:pipenv shell报错:AttributeError: &#39;module&#39; object has no attribute &#39;run&#39;

利用pipenv shell切换到虚拟环境时,显示报错:AttributeError: 'module' object has no attribute 'run' 可以看到是d:\program\python34\lib\site-packages\pipenv\shells.py文件的第62行报错了,提示模块没有run的属性,于是就跑到该文件的第62行去看 选中run,CTRL+B发现能看到源码,源码如下: if sys.version_info >= (3, 6): # Nearly sa

exchange shell 报错winrM 无法处理该请求,因为输入 XML 包含语法错误。

网卡1和网卡2 互换了一下IP 后连接exchange shell 报错如下宿主机是HYPER-V平台互换IP没有问题,KVM平台就报错将IP换过去也没能解决这个问题卸载exchange重新安装未能解决最后通过如下方式解决卸载exchange服务器.删除服务器上和exchange相关的注册表删除键"ExchangeServer"在HKEY_LOCAL_MACHINE\Software\Micorosoft删除键"MSExchange"在HKEY_LOCAL_MACH