Open metroluffy opened 6 years ago
上述命令生成的是空密码(默认用户root),可以进入MySQL使用set password for root@localhost = password('pass');
改成你想要的密码。
如果出现如下错误,
Error while setting value 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' to 'sql_mode'
检查你的my.ini文件是否添加了sql_mode这一项配置
MySQL8.0以后更换了加密方式,之前的版本中加密规则是mysql_native_password
,而在mysql8之后,加密规则是caching_sha2_password
, 如果使用Navicat连接,会报以下错误:
1251 Client does not support authentication protocol requested by server; consider upgrading MySQL client
使用以下语句更换为原来的加密方式
alter user '用户名'@localhost IDENTIFIED WITH mysql_native_password by '你的密码';
在本地环境可以这样做。
如上一条评论这样做,PHP连接MySQL8.0还是会有问题(Unexpected server respose while doing caching_sha2 auth),大概是默认Web的连接都是采用caching_sha2 auth方式?尝试更换为最新的php版本(7.2.9),但是依旧存在问题(Unexpected server response while doing caching sha2 auth: 99)。。。后尝试在mysql的配置文件[mysqld]下加上这么一条default-authentication-plugin = mysql_native_password
,就好了。
如果不希望在Windows使用MySQL installer这样的方式安装MySQL的话,可以使用解压缩版(ZIP Archive)的方式安装,在这里可以找到相应的版本Download MySQL Community Server
具体步骤如下:
将bin目录追加进PATH
配置my.ini
以管理员权限到bin目录下运行:
mysqld --initialize-insecure --user=mysql
这是个需要注意的地方:刚初始化的MySQL是没有data目录的,你需要自己新建一个或通过初始化用户的方式(上面这个命令)来搞定。文档表明,使用-initialize生成随机密码,由于自己学习,使用-initialize-insecure生成空密码。默认帐号root,后面的-user=mysql不更改最后的结果data目录里应包含以下几个文件夹:
没有?再来一遍咯(^_^)
以管理员权限到bin目录下运行:
mysqld install
,之后net start mysql
启动MySQL搞定!( •̀ ω •́ )y
参考资料
https://dev.mysql.com/doc/refman/8.0/en/data-directory-initialization-mysqld.html