我正在尝试在Windows 7上使用PHP,Apache,MySQL和phpMyAdmin的二进制版本配置自己的本地服务器。我已成功配置并使用PHP运行Apache。
现在,我要配置MySQL和phpMyAdmin。首先,我使用代码创建了my.cnf
文件
[mysqld]
bind-address = 127.0.0.1
default_authentication_plugin = mysql_native_password
然后我运行CMD命令
D:/Server/mysql/bin/mysqld.exe --initialize --console
并获得其中包含文件的D:Server/mysql/data
文件夹
我的HTML文件将位于D:/Server/localhost
文件夹中。所以我在那儿插入了解压后的phpMyAdmin文件夹,并在其config.in.php
...
$cfg['Servers'][$i]['verbose'] = '';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['port'] = '';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['nopassword'] = true;
$cfg['Servers'][$i]['AllowNoPassword'] = true;
$cfg['Servers'][$i]['ServerDefault'] = 1;
然后我使用命令启动MySQL
D:/Server/mysql/bin/mysqld.exe --console
在命令提示符下我得到
.../mysqld.exe ready for connections
... X Plugin ready for connections
但是现在,如果我尝试使用root用户名和空密码登录phpMyAdmin,则会收到错误消息
mysqli_real_connect():服务器请求的身份验证方法 客户端未知[caching_sha2_password]
mysqli_real_connect(): (HY000 / 2054):服务器请求的身份验证方法未知 客户
在那儿,我读了https://stackoverflow.com/a/52364450/3208225,但是my.cnf中已经有行default_authentication_plugin= mysql_native_password
我还读到我们可以以root用户身份登录并设置密码,但我真的不知道该怎么办
答案 0 :(得分:1)
好的,问题是我使用命令初始化了data
目录
>mysqld.exe --initialize --console
会生成一个临时密码,但是我希望没有任何密码即可登录。因此,如果要使用空密码,则必须使用命令初始化数据目录
>mysqld.exe --initialize-insecure --console
我们稍后可以设置密码
参考: https://dev.mysql.com/doc/refman/8.0/en/data-directory-initialization.html
答案 1 :(得分:0)
尝试将您的['auth_type']
设置为:$cfg['Servers'][$i]['auth_type'] = 'config';
。
当我安装phpmyadmin时,我犯了同样的错误。 希望对我有用。
亲切的问候。