阿里服务器,问题一:Mysql无法连接

今天将代码迁移到阿里共享虚拟机里面,然后却无法显示数据库内容,由于在本地是没有问题的,所以猜测是无法连接到数据库,于是就使用log记录了一下,log内容如下:

2018-08-18 18:29:29.2500 | Info | Test before connection: 
2018-08-18 18:29:29.4218 | Info | Test Log 
2018-08-18 18:29:29.5156 | Info | exception: System.Data.Entity.Core.ProviderIncompatibleException: The provider did not return a ProviderManifestToken string. ---> MySql.Data.MySqlClient.MySqlException: Authentication with old password no longer supported, use 4.1 style passwords.
   在 MySql.Data.MySqlClient.Authentication.MySqlAuthenticationPlugin.Authenticate(Boolean reset)
   在 MySql.Data.MySqlClient.NativeDriver.Authenticate(String authMethod, Boolean reset)
   在 MySql.Data.MySqlClient.NativeDriver.Open()
   在 MySql.Data.MySqlClient.Driver.Open()
   在 MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings)
   在 MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection()
   在 MySql.Data.MySqlClient.MySqlPool.GetPooledConnection()
   在 MySql.Data.MySqlClient.MySqlPool.TryToGetDriver()
   在 MySql.Data.MySqlClient.MySqlPool.GetConnection()
   在 MySql.Data.MySqlClient.MySqlConnection.Open()
   在 MySql.Data.MySqlClient.MySqlProviderServices.GetDbProviderManifestToken(DbConnection connection)
   在 System.Data.Entity.Core.Common.DbProviderServices.GetProviderManifestToken(DbConnection connection)
   --- 内部异常堆栈跟踪的结尾 ---
   在 System.Data.Entity.Core.Common.DbProviderServices.GetProviderManifestToken(DbConnection connection)
   在 MySql.Data.Entity.MySqlManifestTokenResolver.ResolveManifestToken(DbConnection connection)
   在 System.Data.Entity.Utilities.DbConnectionExtensions.GetProviderInfo(DbConnection connection, DbProviderManifest& providerManifest)
   在 System.Data.Entity.DbModelBuilder.Build(DbConnection providerConnection)
   在 System.Data.Entity.Internal.LazyInternalContext.CreateModel(LazyInternalContext internalContext)
   在 System.Data.Entity.Internal.RetryLazy`2.GetValue(TInput input)
   在 System.Data.Entity.Internal.LazyInternalContext.InitializeContext()
   在 System.Data.Entity.Internal.InternalContext.Initialize()
   在 System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType)
   在 System.Data.Entity.Internal.Linq.InternalSet`1.Initialize()
   在 System.Data.Entity.Internal.Linq.InternalSet`1.get_InternalContext()
   在 System.Data.Entity.Infrastructure.DbQuery`1.System.Linq.IQueryable.get_Provider()
   在 System.Linq.Queryable.OrderBy[TSource,TKey](IQueryable`1 source, Expression`1 keySelector)
   在 MyBlogNew.Controllers.DiaryController.GetDiaries(Int32 pageIndex, Int32 pageSize) 
 .lambda_method => DiaryController.GetDiaries => LoggerHelper.Info 

本以为是没有授权,后来找了下百度,原来是修改了密码方式,可参看该文章:

C# mysql 链接 遇到 异常 Authentication with old password no longer supported, use 4.1 style passwords.

解决方案:

执行这两句:

SET old_passwords=FALSE;

SET PASSWORD = PASSWORD('重设密码');

你可能感兴趣的:(阿里服务器,问题一:Mysql无法连接)