1044 mysql native

2018-09-16 21:28:42 zhengbin9 阅读数 21102
  • Navicat无法连接MySQL 8.0的问题解决

    1、MySQL的完整学习路径和底层运行机制 2、掌握发挥MySQL的最佳性能的优化方法 3、掌握如何处理海量业务数据和高并发请求 4、增加工作和面试时的竞争力

    283人学习 刘运强
    免费试看

方法一:

登录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

2019-01-20 12:35:01 weixin_38825407 阅读数 3648
  • Navicat无法连接MySQL 8.0的问题解决

    1、MySQL的完整学习路径和底层运行机制 2、掌握发挥MySQL的最佳性能的优化方法 3、掌握如何处理海量业务数据和高并发请求 4、增加工作和面试时的竞争力

    283人学习 刘运强
    免费试看

https://blog.csdn.net/zhengbin9/article/details/82729861

 

 

方法一:

登录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
---------------------
作者:蓝壳
来源:CSDN
原文:https://blog.csdn.net/zhengbin9/article/details/82729861
版权声明:本文为博主原创文章,转载请附上博文链接!

 

2011-03-24 10:12:00 dragon8299 阅读数 3752
  • Navicat无法连接MySQL 8.0的问题解决

    1、MySQL的完整学习路径和底层运行机制 2、掌握发挥MySQL的最佳性能的优化方法 3、掌握如何处理海量业务数据和高并发请求 4、增加工作和面试时的竞争力

    283人学习 刘运强
    免费试看

概述

mysql native driver(mysqlnd) 自从php5.3.0开始成为官方源代码的一部分,
用来取代传统的mysql client library(libmysql)。

mysqlnd是C语言写成的PHP扩展(PHP extension)。

php5.3.0之前,码农们操作数据库使用的mysql扩展函数(mysql_connect,mysql_query等函数), mysqli系列函数, PDO MYSQL函数,都是通过libmysql来与mysql数据库进行通信的。

mysqlnd出现之后,SA们就多了一个选择: 可以通过mysqlnd来与mysql数据库进行通信。

mysqlnd不能做什么

虽然mysqlnd是一个PHP扩展,但它却没有提供任何的php函数(或者说是API)给码农们使用。
码农们仍然使用mysql 扩展函数(mysql_connect, mysql_query…),或者mysqli,或者PDO MYSQL来操作数据库。 这些函数都可以通过mysqlnd来与mysql数据库通信。

它是数据库与php函数的中间层。

为什么要使用mysqlnd

原来的libmysql用的好好的,为什么还要搞一个mysqlnd出来呢?

原因一: license问题

libmysql是MYSQL AB公司开发的,现在已经是Oracle集团所属的了,它使用MYSQL license发布。
This ultimately led to MySQL support being disabled by default in PHP

mysqlnd 是php的一部分,使用PHP license发布。
从此 licensing 的问题就算是解决了。

原因二:编译问题

使用libmysql的时候,如果要正常编译php,必须首先安装好mysql。
如果是单纯的一台WEB服务器,装个mysql似乎有点浪费了。

mysqlnd的话,就不必安装mysql,直接可用。

原因三:性能问题

由于mysqlnd是一个php扩展,使用了php memory management system,在内存使用方面效率相当高。
举个例子:
使用libmysql的时候,mysql结果集中的每一行都在内存中储存了二次
使用mysqlnd,结果集只会储存一次。

而且它还服从于php.ini中memory_limit的设置。

Using MySQL Native Driver leads to comparable or better performance than using MySQL Client Library。

mysqlnd的新特性

1 改进的persistent connection。
2 特殊函数 mysqli_fetch_all()

http://cn2.php.net/manual/en/mysqli-result.fetch-all.php

只有安装了mysqlnd, mysqli中的这个函数才可用。

3 Performance statistics calls: mysqli_get_cache_stats(), mysqli_get_client_stats(), mysqli_get_connection_stats()
在分析性能瓶颈的时候,这些函数还是蛮好用的。
详细文档可以看这里: http://cn2.php.net/manual/en/mysqlnd.stats.php

4 使用mysqlnd之后,mysqli也支持persistent connection了。

这样看起来,mysqli受益最多。
5 PHP 5.3.3 之后,mysqlnd支持SSL。

6 PHP 5.3.2 之后,mysqlnd支持Compressed Protocol

7 PHP 5.3.4 之后,windows系统中的mysqlnd支持Named Pipes。

如何安装mysqlnd

LINUX环境中,默认情况下,php中的mysql扩展还是会使用libmysql的。
如果要使用mysqlnd,就要加一个configure的参数:

./configure --with-mysql=mysqlnd /

--with-mysqli=mysqlnd /

--with-pdo-mysql=mysqlnd /

[other options]

这样mysql, mysqli, pdo mysql都会使用mysqlnd。

WINDOWS中,mysqlnd默认启用,并且mysql, mysqli, pdo 默认都会使用mysqlnd。
什么都不用做。

2020-03-11 13:50:38 qq_43395428 阅读数 370
  • Navicat无法连接MySQL 8.0的问题解决

    1、MySQL的完整学习路径和底层运行机制 2、掌握发挥MySQL的最佳性能的优化方法 3、掌握如何处理海量业务数据和高并发请求 4、增加工作和面试时的竞争力

    283人学习 刘运强
    免费试看

在使用 Navicat for Mysql连接mysql 8.0时会报如下错误:

mysql> authentication plugin 'caching_sha2_password' cannot be loaded;

mysql8.0 引入了新特性 caching_sha2_password;这种密码加密方式客户端不支持;客户端支持的是mysql_native_password 这种加密方式;

  • 我们可可以查看mysql 数据库中user表的 plugin字段;
mysql> select host,user,plugin from user;

在这里插入图片描述

  • 可以使用命令将他修改成mysql_native_password加密模式
mysql> updates user set plugin='mysql_native_password' where user='root';
mysql> select host,user,plugin from user;

在这里插入图片描述
链接成功

2018-11-13 11:36:46 losedguest 阅读数 1399
  • Navicat无法连接MySQL 8.0的问题解决

    1、MySQL的完整学习路径和底层运行机制 2、掌握发挥MySQL的最佳性能的优化方法 3、掌握如何处理海量业务数据和高并发请求 4、增加工作和面试时的竞争力

    283人学习 刘运强
    免费试看

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;"
			});