绍兴网站建设方案推广,网站服务器名是什么,html代码做的网站,企业网站制作免费下载就在昨天上午#xff0c;刚为云服务器安装好Apache2.4.33和PHP7.2.4环境#xff0c;准备再来一个最新的MySQL5.7.22。寻找5.7版本的rpm包时下到mysql80xxx.rpm#xff0c;看人家的教程是mysql57#xff0c;难道80是MySQL出出…出了8版#xff0c;一搜新闻2个小时前MySQL发…就在昨天上午刚为云服务器安装好Apache2.4.33和PHP7.2.4环境准备再来一个最新的MySQL5.7.22。寻找5.7版本的rpm包时下到mysql80xxx.rpm看人家的教程是mysql57难道80是MySQL出出…出了8版一搜新闻2个小时前MySQL发布了8.0.11正式稳定版(GA)。我心里什么感觉——刚刚准备起步就被超车看到宣传的2倍性能提高、诸多新特性objk。那就来飙(踩)车(坑)吧果断放弃MySQL5.7直接上8。MySQL8.0用到了新的密码插件验证方式5.7叫做mysql_native_password8.0叫做caching_sha2_password这种加密方式让很多和MySQL连接的界面工具(如Navicat)或编程语言(如PHP)mysqli接口失效:Error : The server requested authentication method unknown to the client [caching_sha2_password]报错:客户端不知道服务器要求验证的规则[caching_sha2_password]目标在云服务器Linux和本地windows都上最新MySQL8.0.11同时让PHP7能连通用mysqli接口连通。工具PuTTY用于远程连接云服务器输入命令FileZilla Client监控服务器的文件目录看看到底命令做了什么。windows版1、在官方下载MySQL ZIP压缩版https://dev.mysql.com/downloads/mysql/2、解压后放到任意一个你指定的目录例如E:\myServer\mysql-8.0.11-winx64新建自定义默认配置文件my.ini内容如下根据实际存放地址修改路径[mysqld] # port 设置端口 ,若设置3306是默认端口可生路# basedir 设置MySQL的安装目录 # datadir 设置MySQL数据库的数据的存放目录port 3380basedirE:\myServer\mysql-8.0.11-winx64\datadirE:\myServer\mysql-8.0.11-winx64\data# mysql8.0.11 默认值为caching_sha2_passworddefault_authentication_pluginmysql_native_password[client]# cmd.exe MySQL命令行所用端口 与上方保持一致port 3380# https://dev.mysql.com/doc/refman/8.0/en/connecting.html3、以管理员身份进入命令行cmd.exe执行安装和初始化注意以管理员身份执行cmd.exe输入完一行指令按回车键执行语句解释如下默认路径为E:\myServer请根据实际修改# 1 [跳转到MySQL主进程mysqld目录]E:cd E:\myServer\mysql-8.0.11-winx64\bin# 2 [加入windows服务,自定义名字MySQL3380]mysqld -install MySQL3380#3 [初始化将生成数据存放文件夹data生成无密码root帐号]mysqld --initialize-insecure# 4 [启动MySQL服务]net start MySQL3380# 5 通过命令行,进入mysql控制台。默认密码为空回车即可mysql -u root -p#--------------------------------------------# [卸载服务(未用到)]net stop MySQL3380sc delete MySQL3380[上方指令动图演示.gif]Linux版环境为云服务器系统版本CentOS7.3使用Yum Repository安装[rootcodenight ~]# cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core)发现系统目录/etc下存在一个MySQL配置文件my.cnf(2016年11月显然是系统自带的)我们想知道在执行mysql-server过程中哪一步会生成或修改my.cnf默认存的内容只有几行[mysqld]datadir/var/lib/mysqlsocket/var/lib/mysql/mysql.sockassorted security riskssymbolic-links0[mysqld_safe]log-error/var/log/mariadb/mariadb.logpid-file/var/run/mariadb/mariadb.pid!includedir /etc/my.cnf.d1.下载MySQL8.0.11的.rpm文件wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm这一步在服务器 /root 目录下载文件mysql80-community-release-el7-1.noarch.rpm2.安装rpm包rpm -ivh mysql80-community-release-el7-1.noarch.rpm --force --nodeps这一步在 /etc/yum.repos.d/ 目录下生成两个文件:mysql-community.repomysql-community-source.repo3.安装mysql-community-serveryum install mysql-community-server弹出对话框确认y最终Complete! 这一命令安装了很多就是这一步生成了新的MySQL配置文件my.cnf主要内容如下不必修改# http://dev.mysql.com/doc/refman/8.0/en/server-configuration-defaults.html[mysqld]# innodb_buffer_pool_size 128M# log_bin# join_buffer_size 128M# sort_buffer_size 2M# read_rnd_buffer_size 2M## 移除default_authentication_plugin前面的#, # 这样就可以兼容老旧的客户端了。有关内容请看:# https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_default_authentication_plugin# default-authentication-pluginmysql_native_passworddatadir/var/lib/mysqlsocket/var/lib/mysql/mysql.socklog-error/var/log/mysqld.logpid-file/var/run/mysqld/mysqld.pid4、启动mysqld服务并加入开机自启动[rootcodenight ~]# systemctl start mysqld.service[rootcodenight ~]# systemctl enable mysqld.service5、获取临时登录密码[rootcodenight ~]# grep temporary password /var/log/mysqld.log复制其中返回的密码:小提示:如果密码死活不对复制到记事本仔细核对。还不行的话只能用黑魔法(其实最大的可能还是密码复制错了)去到/var/log/下载mysqld.log找到里面的password修改自定义密码上传mysql.log并重启MySQL服务6、登录数据库输入以上密码[rootcodenight ~]# mysql -u root -p执行任意SQL语句都会提示错误mysql SHOW DATABASES;ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.[错误1820] 提醒必须使用ALTER USER重置你的密码7、重置密码mysql ALTER USER rootlocalhost IDENTIFIED BY 12345678;ERROR 1819 (HY000): Your password does notsatisfy the current policy requirements[错误 1819]提示你的密码不满足当前policy要求原因是validate_password.policy的默认值是1(中级强度)除了8位长度必须要含有数字、大小写字母、特殊字符至少一种例如3ONbmhttps://dev.mysql.com/doc/refman/8.0/en/validate-password-options-variables.html#sysvar_validate_password.policy如果还是想用简单8位密码例如abc54321降低policy的值mysql SET GLOBAL validate_password.policy0;Query OK, 0 rows affected (0.00 sec)现在密码就改为12345678了mysql ALTER USER rootlocalhost IDENTIFIED BY 12345678;Query OK, 0 rows affected (0.04 sec)8、开放远程连接我们直接在user表插入一个条适用于任何主机登录名为root密码为12345678的记录刷新权限就可以远程登陆了确认服务器安全组或已放行3306端口。USE mysql;INSERT INTO user VALUES (%, root, Y, Y, Y, Y, Y, Y, Y, Y, Y, Y, Y, Y, Y, Y, Y, Y, Y, Y, Y, Y, Y, Y, Y, Y, Y, Y, Y, Y, Y, , , , , 0, 0, 0, 0, mysql_native_password, *84AAC12F54AB666ECFC2A83C676908C8BBC381B1, N, 2018-04-21 11:25:16, null, N, Y, Y, null, null);FLUSH PRIVILEGES;看看用户权限表里面用户和密码mysql SELECT host,user,plugin,authentication_string FROM mysql.user;-------------------------------------------------------------------------------------------------------------------------| host | user | plugin | authentication_string |-------------------------------------------------------------------------------------------------------------------------| % | root | mysql_native_password | *84AAC12F54AB666ECFC2A83C676908C8BBC381B1 || localhost | mysql.infoschema | mysql_native_password | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE || localhost | mysql.session | mysql_native_password | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE || localhost | mysql.sys | mysql_native_password | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE || localhost | root | caching_sha2_password | $A$005$0qyQJPnkR5J~}tGo2dCdahVKfz42pCUr/3tLWJYERvir2Mr5jUUkBR2B |-------------------------------------------------------------------------------------------------------------------------5 rows in set注同样的密码12345678生成的密文string第一行是native加密的结果第五行是sha2加密的结果服务器命令行使用的是hostlocalhost AND userroot远程连接使用host% AND userroot9、优雅降级现在Navicat可以远程连接上了PHP等编程语言调用的mysqli接口还不行因为MySQL8.0.11 前天才发布正式版这些程序接口都没来得写(PHP最新一版是3月30号)所以加密plugin需要设置为mysql_native修改/etc/my.cnf保存并重启MySQL服务器[rootcodenight ~]# systemctl restart mysqld.service10、其他相关错误处理例如密码12345678user表里的authentication_string字段必须存放根据 plugin字段指明的规则生成的密文否则无论如何输入都提示密码错误的参考资料:[官方]使用Yum Repository安装MySQL:https://dev.mysql.com/doc/refman/8.0/en/linux-installation-yum-repo.htmlCentOS7 通过YUM安装MySQL5.7:https://www.cnblogs.com/jorzy/p/8455519.htmlhttps://blog.csdn.net/wisdom_c_1010/article/details/55506081