2018-11-13 11:36:46 losedguest 阅读数 880
  • SQL&MySQL

    本课程讲解了SQL的基本语法和MySQL的详细用法,内容包括:SQL语法、SQL数据类型、常用SQL语句、复杂查询包括,连接查询、子查询、联合查询,事务、Python操作MySQL数据库。

    13367 人正在学习 去看看 郭宏志

DB名稱異常

MySql.Data.MySqlClient.MySqlException (0x80004005): Authentication to host '**IP地址**' for user '**有戶名**' using method 'mysql_native_password' failed with message: Access denied for user 'lrmis'@'%' to database 'maildb1' ---> MySql.Data.MySqlClient.MySqlException (0x80004005): Access denied for user 'lrmis'@'%' to database 'maildb1'

 

MySql.Data.MySqlClient.MySqlException (0x80004005): Authentication to host '**IP地址**' for user '**有戶名**' using method 'mysql_native_password' failed with message: Reading from the stream has failed. ---> MySql.Data.MySqlClient.MySqlException (0x80004005): Reading from the stream has failed. ---> System.IO.EndOfStreamException: Attempted to read past the end of the stream.

此異常偶爾出現,網上介紹連接字符串加上sslmode=none; 待觀察驗證

 

正常情況下是連接字符串不對時,每次都會出現此異常 ,寫不正確的db名稱

 return string.Concat(new string[]
			{
				"Database='",
				this._DBName,
				"';Data Source='",
				this._ServerName,
				"';Persist Security Info=True;min pool size=20;max pool size=10240;Connection Timeout = 15;CharSet=UTF8mb4;Pooling=true;User Id='",
				this._LoginUser,
				"';Password='",
				this._PassWord,
				"';charset='utf8mb4';pooling=true;sslmode=none;"
			});


 
2017-01-13 14:01:04 squirrelnald 阅读数 1954
  • SQL&MySQL

    本课程讲解了SQL的基本语法和MySQL的详细用法,内容包括:SQL语法、SQL数据类型、常用SQL语句、复杂查询包括,连接查询、子查询、联合查询,事务、Python操作MySQL数据库。

    13367 人正在学习 去看看 郭宏志

visual studio C# 上使用’mysql_native_password’无法获取本地mysql使用权, 报错图如下:
.NET报错图

解决办法:comment掉设置中的部分内容
解决办法图
原帖链接

2020-01-10 20:28:59 SunZLong 阅读数 18
  • SQL&MySQL

    本课程讲解了SQL的基本语法和MySQL的详细用法,内容包括:SQL语法、SQL数据类型、常用SQL语句、复杂查询包括,连接查询、子查询、联合查询,事务、Python操作MySQL数据库。

    13367 人正在学习 去看看 郭宏志

MySQL 5.6提供了以下身份验证插件:

1、mysql_native_password

执行本地身份验证的插件;在MySQL中引入可插入身份验证之前使用的基于密码哈希方法的身份验证。该mysql_native_password插件基于本机密码哈希方法实现身份验证。该mysql_old_password 插件基于较旧的(4.1之前的)密码哈希方法实现本机身份验证(现已弃用)。mysql_native_password的新帐户默认使用本机身份验证 ,除非在服务器启动时在配置文件设置 --default-authentication-plugin 选项。

2、sha256_password

使用SHA-256密码哈希执行身份验证的插件。该插件为用户帐户密码实现SHA-256哈希,与本地身份验证相比,这是更强大的加密。“ sha256 ”是指插件用于加密的256位摘要长度。“ sha2 ” 更笼统地指SHA-2类加密算法,其中256位加密是其中的一种实例。

例如创建帐户并使用sha256_password插件指定其身份验证:

CREATE USER 'sha256user'@'localhost' IDENTIFIED WITH sha256_password BY 'password';

这里是显示使用的sha256_password插件,或者在配置文件里面直接设置:

[mysqld]
default-authentication-plugin=sha256_password

 在MySQL5.7的官方文档中:

3、新增caching_sha2_password的身份认证插件

MySQL提供了两个身份验证插件,用于对用户帐户密码实施SHA-256哈希:

  • sha256_password:实现基本的SHA-256身份验证。

  • caching_sha2_password:实现SHA-256身份验证(如sha256_password),但是在服务器端使用缓存以获得更好的性能,并具有其他功能以提高适用性。

重要:

  • 在MySQL 5.7中,默认的身份验证插件还是为 mysql_native_password
  • 在MySQL 8.0中,caching_sha2_password是默认的身份验证插件,而不是 mysql_native_password
  • 因为caching_sha2_password是MySQL 8.0中的默认身份验证插件,并且提供了该sha256_password身份验证插件的功能的超集 ,使用sha256_password验证的MySQL帐户应改为使用caching_sha2_password 。
  • 为了使MySQL 5.7客户端能够使用通过caching_sha2_password身份验证的帐户连接到8.0及更高版本的服务器 ,MySQL 5.7客户端库和客户端程序均支持 caching_sha2_password客户端身份验证插件。尽管默认身份验证插件有所不同,但与MySQL 8.0和更高版本的服务器相比,这提高了MySQL 5.7客户端连接功能的兼容性。

caching_sha2_password插件相比于sha256_password有这些优势:

  • 在服务器端,内存缓存使重新连接的用户可以更快地重新认证以前连接的用户。(此服务器端行为仅在MySQL 8.0和更高版本中实现。)

  • 提供了对使用Unix套接字文件和共享内存协议的客户端连接的支持。

 

2018-09-16 21:28:42 zhengbin9 阅读数 11308
  • SQL&MySQL

    本课程讲解了SQL的基本语法和MySQL的详细用法,内容包括:SQL语法、SQL数据类型、常用SQL语句、复杂查询包括,连接查询、子查询、联合查询,事务、Python操作MySQL数据库。

    13367 人正在学习 去看看 郭宏志

方法一:

登录MySQL后输入:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourPassword';

FLUSH PRIVILEGES;

方法二:

编辑my.cnf文件,更改默认的身份认证插件。

vi /etc/my.cnf

在[mysqld]中添加下边的代码
default_authentication_plugin=mysql_native_password

然后重启MySQL
service mysqld restart

2017-03-25 17:29:56 zjy15203167987 阅读数 12424
  • SQL&MySQL

    本课程讲解了SQL的基本语法和MySQL的详细用法,内容包括:SQL语法、SQL数据类型、常用SQL语句、复杂查询包括,连接查询、子查询、联合查询,事务、Python操作MySQL数据库。

    13367 人正在学习 去看看 郭宏志


每次走到ITOO.Library.Core.Common.MySqlHelper.ExecuteDataTableNonConn(sql);的时候就会报错:

Authentication tohost '' for user '' using method 'mysql_native_password' failed with message:Access denied for user ''@'xxx' (using password: NO)


 //连接数据库
  string connstr = ITOO.Library.Core.Common.MySqlHelper.connectionString;
  MySqlConnection conn = ITOO.Library.Core.Common.MySqlHelper.GetConnection;


connstr和conn读取到的值为空

 

配置文件中连接数据库代码:


 <add key="connectionString" value="Database=xxxx;Data Source=192.168.22.xxx;Port=3306;User Id=xxx;Charset=utf8;Password=xxx;TreatTinyAsBoolean=true;allow zero datetime=true" />

我着实的检查了每个配置文件的数据库连接地址,数据库名和密码都是没有错的

 

错误原因:

底层代码被改

这是底层代码:

 public static string connectionString = System.Configuration.ConfigurationManager.AppSettings["strDBKey"];

底层接收的值是strDBKey而不是connectionString


解决方法:

将配置文件中连接数据库的字段改为:key="strDBKey"










                                
没有更多推荐了,返回首页