mysql8.0 在window环境下的部署与配置

今天在阿里云window服务器上配置mysql环境,踩了一些坑,分享出来。须要的朋友能够看看。额,或许有人要吐槽我为何不在linux上去配置,额,由于我window的那台服务器配置相对高些。本人技术方面偏向于.net,如今接触php项目因此搭建LAMP环境。只不过个人数据库放在window上的这台服务器。

言归正传php

 

先选择版本,到mysql官方网站下载,你会发现各宗版本看得眼花缭乱的,不要惊慌先选择MySQL Community Edition版, 而后再跳转的页面下,你会发现还会有不少子版本要选,英文要很差的同窗,选择上会有点吃力,可选子版本有两个:mysql

(1)先说 一个是最省事的版本 ,直接下一步下一步安装就好,有点像sqlserver  纯界面展现。 https://dev.mysql.com/downloads/installer/  ,配置比较高的服务器,或懒得去搞一堆命令行的朋友能够直接下载这个。看完这里能够直接省略下面的内容了。linux

  (2) 第二个版本,MySQL Community Server版本。 这个版本比较适合服务器安装。占用资源较小。部署也比较灵活。缺点若是不熟悉的话坑会比较多。   sql

 咱们先快速的说下 安装的步骤,先下载文件,解压缩到目标文件夹位置.好比 D:/mysql 。数据库

1,在mysql文件夹 下新建一个文件名为my.ini , 而后录入信息以下windows

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8 
[mysqld]
#设置3306端口
port = 3306 
# 设置mysql的安装目录
basedir=D:/mysql
# 设置mysql数据库的数据的存放目录
datadir=D:/mysql/data
# 容许最大链接数
max_connections=500
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 建立新表时将使用的默认存储引擎
default-storage-engine=INNODB

 

2,这个时候打开CMD(记得以管理员身份运行),不然输入命令时会出现install/remove of the service denied错误,进入mysql文件夹。cd d:/mysql/bin(若是不想每次都cd进到这个目录,能够将该路径添加到 path路径下)安全

 

#mysql安装完成
>mysqld install 

#2初始化配置此时会用到以前的配置文件my.nin 而后在data目录生成数据
>mysqld --initialize 

#显示:服务正在启动...服务已经启动启动成功!
>net start mysql 

 

----------------------------------------------------------------------------------------------------服务器

好!!接着我来讲说我遇到的坑socket

问题1: 安装mysql服务时提示“找不到msvcp140.dll?ide

我服务器的版本是windows server 2012 r2 版本的。刚开始输入命令行的时候报这个错。是由于缺乏这个补丁Microsoft Visual C++ 2015 Redistributable Update 3

下载地址  https://www.microsoft.com/en-us/download/details.aspx?id=53587

 

问题2:安装好服务后,有的时候运气好,默认初始版本密码是空的可登陆。但有的时候密码为空是登录不进去的。好问题来了,

D:\mysql\bin>mysql -uroot -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

 

密码为空 ,登录不进去,非常烦躁一万只草泥马路过,看了不少帖子,都是处理mysql5.11 的 如今8.0 处理不了。接着找办法

这个时候须要 关闭sql服务,在控制面板里面的服务,找到mysql关掉。 也能够用命令行 net stop mysql 是关闭MySQL服务


在服务器上用如下方式跳过登录,进入mysql,在cmd中按照如下方式操做 mysqld --console --skip-grant-tables --shared-memory

D:\mysql\bin>mysqld --console --skip-grant-tables --shared-memory
2018-10-05T16:22:02.055800Z 0 [System] [MY-010116] [Server] D:\mysql\bin\mysqld.exe (mysqld 8.0.12) starting as process 9440
2018-10-05T16:22:06.832563Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2018-10-05T16:22:06.914520Z 0 [System] [MY-010931] [Server] D:\mysql\bin\mysqld.exe: ready for connections. Version: '8.0.12'  socket: ''  port: 0  MySQL Community Server - GPL.
2018-10-05T16:22:06.977960Z 0 [Warning] [MY-011311] [Server] Plugin mysqlx reported: 'All I/O interfaces are disabled, X Protocol won't be accessible'
2018-10-05T16:22:12.006067Z 0 [System] [MY-013105] [Server] D:\mysql\bin\mysqld.exe: Normal shutdown.
D:\mysql\bin>2018-10-05T16:22:13.198096Z 0 [System] [MY-010910] [Server] D:\mysql\bin\mysqld.exe: Shutdown complete (mysqld 8.0.12)  MySQL Community Server - GPL.
此时,从新打开一个CMD窗口 ,以前的窗口保留着不要关闭!。按以下步骤操做

>mysql -u root; # 这里切记不要 加 -p。 要不会强制要你输入密码才能登录 >update user set authentication_string='' where user='root'; # 此时密码必定要留空!数据库里面的密码默认是加密过的,之前的password(123)函数在8.0版本后就不能用了。 >flush privileges; (不提交不生效)

如今 root账户终于有了初始密码,此时密码为空!!,也只能为空!!不然你会登录不进去的 ,存储进去会像md5 同样加密过的字符串在表里。

 

问题3 , 如何修改root 密码

在操做mysql命令行的时候 结尾务必带着" ;" 要不回车键按下去会一直换行

mysql > alter user 'root'@'%' identified by '123';

 

mysql > alter user 'root'@'localhost' identified by '123';

 

或 输入quit; 从 mysql命令行回到 cmd  ,进入mysql安装目录/bin

>mysqladmin -uroot -p password 123  

 

 

此时,基本上解决 了mysql的服务端的问题了,如今咱们把焦点移动到客户端。  假设如今的场景服务端和客户端不在同一台机子上。 咱们须要安装下客户端的工具

推荐两个工具 第一个是mysql的 MySQL Workbench

 

第二个是 Navicat Premium 12 工具,破解版就本身去找啦。相对 这个工具能够帮你剩下不少事,好比对命令行比较不在行的同窗能够选下的这个版本

 

问题4 ,没法远程登录访问远程服务器上面的mysql

就是用上面两个客户端工具 ,都没法登录服务器,由于默认mysql是不让客户端远程登录的,这个时候 第一步须要检查阿里云服务器的安全组策略,添加3306 端口的入口,

第二步,回到服务器 ,进入cmd ,将原先表中的数据 localhost改为 ‘%’ , 也能够改为 指定的ip地址 如 ‘192.168.0.0,192.168.0.1,192.168.0.2’

>mysql -u root -p  #登录mysql

mysql>use mysql; #使用mysql库 mysql>update user set host = '%' where user = 'root'; # 修改host的限制,也能够指定ip访问,改为你客户端ip就好 mysql>select user, authentication_string from user;

修改好后,这时 ,MySQL Workbench ,你会发现能够登录进去了。可是 Navicat Premium ,会报出“客户端链接caching-sha2-password问题” 这个是因为mysql 不太愿意让第三方工具接入客户端查询,

在密码反编译的时候故意没有对接好。接着咱们来处理最后一个问题.

 

问题5 : Navicat Premium 客户端链接caching-sha2-password问题 ,进到cmd ,登录到mysql

 mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密规则
 mysql>ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; #更新一下用户的密码  
 mysql>FLUSH PRIVILEGES; #刷新权限 

#执行完后此时须要重置下你的密码 ,由于密码加密规则已经改变 不重置密码你会登录不上去的!
mysql> alter user 'root'@'localhost' identified by '123';

注意了! 若是你在问题4中已经把localhost 改为 % 的 ,  上面的语句 也要跟着改  好比:'root'@'%',若是是跟着ip的 也以此类推. 不然执行会报错!

 

最后 基本上常见的坑就踩完了,写的有点粗糙,熬夜分享的一点心得,你们凑乎这看吧。

相关文章
相关标签/搜索