Php 默认身份验证插件=mysql\u本机\u密码 ------- # Default Homebrew MySQL server config [mysqld] # Only allow connections from localhost bind-address = 127.0.0.1 default-authentication-plugin=mysql_native_password ------

Php 默认身份验证插件=mysql\u本机\u密码 ------- # Default Homebrew MySQL server config [mysqld] # Only allow connections from localhost bind-address = 127.0.0.1 default-authentication-plugin=mysql_native_password ------,php,mysql,hash,sha,Php,Mysql,Hash,Sha,最后运行:brew服务重新启动mysql像许多人一样,我也遇到过同样的问题。虽然用户被设置为使用mysql_native_密码,并且我可以从命令行进行连接,但让mysqli()连接的唯一方法是添加 默认身份验证插件=mysql\u本机\u密码 ------- # Default Homebrew MySQL server config [mysqld] # Only allow connections from localhost bind-address = 127.0.0.1 default

最后运行:brew服务重新启动mysql

像许多人一样,我也遇到过同样的问题。虽然用户被设置为使用mysql_native_密码,并且我可以从命令行进行连接,但让mysqli()连接的唯一方法是添加

默认身份验证插件=mysql\u本机\u密码

-------
# Default Homebrew MySQL server config
[mysqld]
# Only allow connections from localhost
bind-address = 127.0.0.1
default-authentication-plugin=mysql_native_password
------

对于的[mysqld]部分,在我的ubuntu 19.10设置中,/etc/mysql/mysql.conf.d/mysqld.cnf

和许多人一样,我也遇到了同样的问题。虽然用户被设置为使用mysql_native_密码,并且我可以从命令行进行连接,但让mysqli()连接的唯一方法是添加

默认身份验证插件=mysql\u本机\u密码

-------
# Default Homebrew MySQL server config
[mysqld]
# Only allow connections from localhost
bind-address = 127.0.0.1
default-authentication-plugin=mysql_native_password
------

到的[mysqld]部分,在我的ubuntu 19.10设置中,/etc/mysql/mysql.conf.d/mysqld.cnf

现在你可以升级到PHP7.4,默认情况下mysql将使用
缓存\u sha2\u密码,因此,默认MySQL安装将使用
mysqli\u connect
无需配置。

现在您可以升级到PHP7.4,默认情况下,MySQL将使用
缓存\u sha2\u密码,因此,默认的MySQL安装将使用
mysqli\u connect
无需配置。

我正在使用laravel 5.8,并通过在.env文件中添加DB\u SOCKET=/Applications/MAMP/tmp/MySQL/MySQL.sock来解决此错误,如下所示

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=8889
DB_DATABASE=dbname
DB_USERNAME=root
DB_PASSWORD=root
DB_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock

我使用的是Laravel5.8,MAMP服务器通过在.env文件中添加DB_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock解决了这个错误,如下所示

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=8889
DB_DATABASE=dbname
DB_USERNAME=root
DB_PASSWORD=root
DB_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock



PDO支持这个吗?我看过其他关于mysqli的报告@黃皓哲 应标记为接受答案。使用以下命令从终端登录到mysql:mysql-u root-p,然后输入root密码,然后粘贴以下命令ALTER USER'root'@'localhost',通过'root'标识mysql_native_密码;PDO支持这个吗?我看过其他关于mysqli的报告@黃皓哲 应标记为接受答案。使用以下命令从终端登录到mysql:mysql-u root-p,然后输入root密码,然后粘贴以下命令ALTER USER'root'@'localhost',通过'root'标识mysql_native_密码;回答得好。这里的问题是,每次添加新用户时,您可能都必须这样做,具体取决于服务器设置非常感谢我一直在寻找将新密码哈希转换为旧密码哈希的方法(如问题中的user2格式到user1格式)您的回答正好完成了任务,因此结束了为期4天的努力,以使php-7.2.9/11与MySQL-8.012配合良好。PHP团队中的某个人可以确信在tarball的安装中注意到这一点吗?这将在未来一两年内节省数千人小时。@MountainMan救了我的命这应该是公认的解决办法的答案好答案。这里的问题是,每次添加新用户时,您可能都必须这样做,具体取决于服务器设置非常感谢我一直在寻找将新密码哈希转换为旧密码哈希的方法(如问题中的user2格式到user1格式)您的回答正好完成了任务,因此结束了为期4天的努力,以使php-7.2.9/11与MySQL-8.012配合良好。PHP团队中的某个人可以确信在tarball的安装中注意到这一点吗?这将在未来一两年内节省数千人小时。@MountainMan救了我的命这应该是工作区解决方案的公认答案PDO@Machavity你知道这个答案是否仍然有效吗?Ie。新的PHP版本还没有过时吗?@gen-Based,看起来从7.4.2升级到php7.4就解决了这个问题。我认为这是最好的方法,而不是像一些答案所建议的那样将身份验证方法更改为
mysql\u native\u password
。我使用docker(容器中使用apache+php,其他容器中使用mysql),这解决了我的问题。谢谢PDO@Machavity你知道这个答案是否仍然有效吗?Ie。新的PHP版本还没有过时吗?@gen-Based,看起来从7.4.2升级到php7.4就解决了这个问题。我认为这是最好的方法,而不是像一些答案所建议的那样将身份验证方法更改为
mysql\u native\u password
。我使用docker(容器中使用apache+php,其他容器中使用mysql),这解决了我的问题。谢谢此外,请记住,如果用户是在此更改之前创建的,那么它将不起作用。因此,您应该首先在配置中设置默认身份验证,然后创建用户才能工作!这在Ubuntu20.04、MySQL 8.0和PHP5.6上运行。请注意,您必须为此工作将表设置为INNODB。另外,请记住,如果用户是在此更改之前创建的,则它将不起作用。因此,您应该首先在配置中设置默认身份验证,然后创建用户才能工作!这在Ubuntu20.04、MySQL 8.0和PHP5.6上运行。请注意,您必须为此工作将表设置为INNODB这是我在localhost服务器上使用WAMP服务器的唯一解决方案:)这似乎在我的Mac的自制LAMP设置中修复了它。但是在debian上没有遇到过这个问题。对于那些纯粹的初学者,1)
cd/usr/local/mysql/bin
2)
/mysql-u root-p
3)在这篇文章中输入代码行这是我在本地主机服务器上使用WAMP服务器的唯一解决方案:)这似乎可以在我的Mac的自制LAMP设置上修复它。但是在debian上没有遇到这个问题。对于那些纯粹的初学者,1)
cd/usr/local/mysql/bin
2)
/mysql-u root-p
3)在本文中输入代码行。它在7.4.0和7.4.1中都是四轮马车。不完全是。它在7.4.0和7.4.1中都是四轮马车。很有效,谢谢你。。。我们必须配置两件事:mysql conf和alteruserit。谢谢你。。。我们必须配置两件事:mysql conf和alter userno spaces here
'root'@'localhost'
应该改为读取
alter USER'roo
default_authentication_plugin=mysql_native_password
ALTER USER my_user@'%' IDENTIFIED WITH mysql_native_password BY 'password';
ALTER USER my_user@'%' IDENTIFIED WITH mysql_native_password BY 'password';
<?php
$db_name="db";
$mysql_username="root";
$mysql_password="****";
$server_name="localhost";
$conn=mysqli_connect($server_name,$mysql_username,$mysql_password);

if ($conn) {
    echo "connetion success";
}
else{
    echo mysqli_error($conn);
}

?>
$mysql --verbose --help | grep my.cnf

$ which mysql
/usr/local/bin/mysql
-------
# Default Homebrew MySQL server config
[mysqld]
# Only allow connections from localhost
bind-address = 127.0.0.1
default-authentication-plugin=mysql_native_password
------
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=8889
DB_DATABASE=dbname
DB_USERNAME=root
DB_PASSWORD=root
DB_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock