分享一下我在mysql5.6+mysql8数据库安装过程中的一些坑!
Mysql5.6安装
下载好安装包后,在bin目录下用cmd打开,输入mysqld install 【服务名】新建个服务
在windows+r输入services.msc即可查看服务
怎样使用mysql
在本地电脑上安装好mysql服务器后,使用命令开启mysql服务,命令为net start mysql,我的mysql服务名是这个,开启服务的语法是 net start 服务名
成功返回服务已启动
第一次使用mysql,采用mysql -u root -p进入mysql服务器,此时没有设置root用户登录密码,默认端口是3306,默认进入
设置登录密码采用命令
INSERT INTO mysql.user (Host,User,Password) VALUES ('%','system', PASSWORD('root'));
FLUSH PRIVILEGES;
这样就可以将root用户的密码更改为root了
在安装mysql时候遇到的坑,有些时候安装好的mysql数据库会只有两个,我之前安装mysql数据库时,发现登录进去只有两个数据库,正常情况下是有四个数据库的,所以我就重新安装了mysql数据库
有些教程会让你开启服务后初始化数据库
mysqld --initialize --console # 初始化数据库
但是事实上,mysql5.6是不需要初始化的,否则会报错mysqld: unknown option '--initialize'这样的错误
设置登录密码时使用 mysql -u root -p 进入mysql,会产生报错,不像有些博主描述的那样,
原因未知
修改密码,解决mysql“Access denied for user 'root'@'localhost'”的博客:https://blog.csdn.net/lyflower/article/details/6137021,https://www.cnblogs.com/zhengze/p/10702035.html#4416181
方法1: 用SET PASSWORD命令
格式:mysql> set password for 用户名@localhost = password('新密码');
例子:mysql> set password for root@localhost = password('');
方法2:用mysqladmin
格式:mysqladmin -u用户名 -p旧密码 password 新密码
例子:mysqladmin -uroot -p123456 password 123
方法3:用UPDATE直接编辑user表
mysql> use mysql;
mysql> update user set password=password('') where user='root' and host='localhost';
mysql> flush privileges;
Mysql卸载
我是直接将整个安装目录删除,然后发现服务列表里还是会有mysql服务,因此,需要去注册列表里去删除,注册列表打开windows+r,输入regedit,在计算机\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\EventLog\Application\MySQL,删除mysql服务,这样下次安装mysql的时候才不会报错,服务已经存在,具体参照博客:https://www.cnblogs.com/hskw/p/9298108.html,要关机重启一下,原来的服务才会消失。不然报错error:该mysql57服务仍在,并且显示”<读取描述失败,错误代码2>”,双击它出现,在本地计算机上找不到该文件,启动不了,也删不掉。重新安装也不能覆盖
最好的方式是删除之前,在安装bin目录下使用命令, mysqld remove [服务名] 移除服务
其次是使用windows自带的命令sc delete 服务名,sc query mysql 查询mysql服务
Mysql.ini 文件的修改
Mysql文件默认在安装路径之下
这里有些博主说要改文件名,为my.ini,但是我是没改的,事实上也不会报错什么的,因此,改不改都是无所谓的!
配置内容:
[mysql] #设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] #设置mysql端口 port= #设置mysql安装目录 basedir=E:\Mysql56\mysql-5.6.-winx64\mysql-5.6.-winx64 #设置mysql存放data的目录 datadir=E:\Mysql56\mysql-5.6.-winx64\mysql-5.6.-winx64\data #允许最大的连接数 max_connections= #服务端使用字符集默认为8比特编码的latin1字符 character-set-server=utf8 #创建新表时默认的存储引擎 default-storage-engine=INNODB sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
这里要留心【mysql】,【mysqld】下面的配置内容,不能乱了,不然mysql会读取不了配置文件,加载失败,我在这里弄了很久!
怎样确认mysql.ini是否生效?
这一步首先要确保你的ini文件是正确的,不然会发生1067的报错。
应该修改查看mysql的启动加载的ini文件,我的一开始是没有加载ini文件的,根据下面的博客修改启动项。
位置在:win+R---->regedit---->HKEY_LOCAL_MACHINE---->SYSTEM---->CurrentControlSet---->Services---->MySQL
在注册表修改启动项参数,根据路径找到ImagePath,双击,就会弹出这个编辑字符串,把这个修改一下,在中间加上下面这行内容,注意“ -- ”前面有空格,前面那个是mysqld的加载路径,后面那个是你的服务名称,不需要改动。
--defaults-file="安装路径\my-default.ini"
配置成功是这样子的,可以在可执行路径上看到加载的配置文件
参考博客:https://www.cnblogs.com/memory9770/p/11524315.html
查看mysql版本信息,进入mysql数据库后输入status,查看数据库信息,是否与配置文件成功就知道修改成功没有!
查看当前默认的引擎:
mysql> show variables like 'default_storage_engine';
修改环境变量的博客:https://www.cnblogs.com/jqpy1994/p/9553118.html
安装Mysql8出现的问题
系统找不到指定的文件、发生系统错误 1067 进程意外终止,这个是因为配置文件没有加载成功,找不到服务。
mysql8安装教程:https://zhuanlan.zhihu.com/p/64411765
解决1067错误参考博客https://blog.csdn.net/mhmyqn/article/details/17043921
在安装mysql8的过程中,一开始执行mysqld install【服务名】时就发生报错,原因是我缺少vcruntime140_1.dll,这个提示已经非常明确,只要找个这个动态链接库安装到C\system32里面,我之前查找的时候果然发现我没有这个库,注意一定是vcruntime140_1.dll,不是vcruntime140.dll。
这个上面会报2003,错误,2003错误通常都是服务没开启或者是端口没连上,因为我修改了mysql8数据的默认链接端口,所以登录命令要指定mysql8的端口才能登录
mysql8配置文件
[mysqld]
port=
basedir=E:\Mysql8\mysql-8.0.-winx64\mysql-8.0.-winx64
datadir=E:\Mysql8\mysql-8.0.-winx64\mysql-8.0.-winx64\data
max_connections=
max_connect_errors=
character-set-server=utf8
default-storage-engine=INNODB
default_authentication_plugin=mysql_native_password
# 设置3307端口,为了与旧版本的区分不冲突
# 设置mysql的安装目录
# 切记此处一定要用双斜杠\\,单斜杠我这里会出错,不过看别人的教程,有的是单斜杠。自己尝试吧
# 设置mysql数据库的数据的存放目录
# 允许最大连接数
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
# 服务端使用的字符集默认为UTF8
# 创建新表时将使用的默认存储引擎
# 但因为当前有很多数据库工具和链接包都不支持“caching_sha2_password”,为了方便,我暂时改回了“mysql_native_password”认证插件。<br>#默认使用“mysql_native_password”插件认证
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=
default-character-set=utf8
mysql8要执行这个命令 mysqld --initialize --console # 初始化数据库 进行初始化,因为root用户的初始登录密码在里面.
E:\Mysql8\mysql-8.0.19-winx64\mysql-8.0.19-winx64\bin>mysqld --initialize --console
2020-02-02T06:04:37.062657Z 0 [System] [MY-013169] [Server] E:\Mysql8\mysql-8.0.19-winx64\mysql-8.0.19-winx64\bin\mysqld.exe (mysqld 8.0.19) initializing of server in progress as process 9616
2020-02-02T06:04:37.065698Z 0 [ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.
2020-02-02T06:04:37.065724Z 0 [ERROR] [MY-013236] [Server] The designated data directory E:\Mysql8\mysql-8.0.19-winx64\mysql-8.0.19-winx64\data\ is unusable. You can remove all files that the server added to it.
2020-02-02T06:04:37.089282Z 0 [ERROR] [MY-010119] [Server] Aborting
2020-02-02T06:04:37.091878Z 0 [System] [MY-010910] [Server] E:\Mysql8\mysql-8.0.19-winx64\mysql-8.0.19-winx64\bin\mysqld.exe: Shutdown complete (mysqld 8.0.19) MySQL Community Server - GPL. E:\Mysql8\mysql-8.0.19-winx64\mysql-8.0.19-winx64\bin>mysqld --initialize --console
2020-02-02T06:07:06.828384Z 0 [System] [MY-013169] [Server] E:\Mysql8\mysql-8.0.19-winx64\mysql-8.0.19-winx64\bin\mysqld.exe (mysqld 8.0.19) initializing of server in progress as process 4372
2020-02-02T06:07:10.079556Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Zkhir&Cd3Nug
这个我这里初始化的时候发生了错误,根据网上的教程,我把mysql目录下的data文件全部删除了,然后再执行一次,可以发现就没有错误了,并且告诉了root用户的初始化密码
接下来就是使用mysql命令进入数据库啦!
msyql8修改初始密码
修改成功后的配置
解决2003错误,参考的博客:https://blog.csdn.net/py_123456/article/details/79694786
整个配置还是挺多坑的,但是自己要学会去百度,学会去看报错信息,才能快速的解决问题,
PS:所有终端都要在管理员权限下打开,防止权限不够,我设置了两个mysql的端口,一个是3306,一个是3307,所以可以同时打开两个不同版本的数据库
最后,我没有设置环境变量,因为我担心会出错,打开两个不同版本的数据库时,所以自己知道安装路径就行了,整个过程安装了不间断安装了两天,
第一次写博客,所以希望尽量把自己遇到的坑告诉大家!
分享一下我在mysql5.6+mysql8数据库安装过程中的一些坑!的更多相关文章
- oracle数据库安装过程中的疑惑—该记录是本人以前写在微博上的文章
转行IT初学者关于oracle数据库整理第一次安装数据库的时候都是按照操作步骤一步一步进行安装,并没有对操作步骤产生过怀疑或者为什么要这么进行操作?2017年12月8日再次阅读安装操作说明书的时候有了 ...
- windows10下 MySQL5.7.18版本安装过程及遇到的问题
windows10下 MySQL5.7.18版本安装过程及遇到的问题 mysql-5.7.18-winx64 安装 1.解压 此次将MySQL装在H盘,依个人喜 ...
- VMware workstation16 中Centos7下MySQL8.0安装过程+Navicat远程连接
1.MySQL yum源安装 2.安装后,首次登录mysql以及密码配置3.远程登录问题(Navicat15为例) 一.CentOS7+MySQL8.0,yum源安装1.安装mysql前应卸载原有my ...
- mysql-5.5.28源码安装过程中错误总结
介绍一下关于mysql-5.5.28源码安装过程中几大错误总结,希望此文章对各位同学有所帮助.系统centOS 6.3 mini (没有任何编译环境)预编译环境首先装了众所周知的 cmake(yum ...
- MySQL5.7 安装过程中出现 attempting to start service 过不去
MySQL5.7 安装过程中出现 attempting to start service 过不去. 1,机制打开服务,把MySql服务名启动(我的是MySqlAliyun) 启动失败:提示1067错误 ...
- MySql数据库GROUP BY使用过程中的那些坑
MySql数据库GROUP BY使用过程中的那些坑 GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组. 特别注意: group by 有一个原则,就是 select 后面的所有 ...
- mysql5.7.12安装过程中遇到的一些问题
在安装mysql-5.7.12-winx64中遇到的问题总结 1.该版本的mysql解压后的文件夹里没有data文件(切记自己添加data,自己添加的文件可能出现的问题是文件里的文件会缺失) 我在使用 ...
- java连接mysql数据库8.0以上版本过程中遇到的坑
来自:https://blog.csdn.net/u013276277/article/details/80255468 首先,我居然不能用navicat客户端连接上mysql8.0数据库报1251错 ...
- Centos7中MySQL8.0安装过程及遇到的问题记录
本文主要参考以下2篇文章,安装操作 https://www.miboxapp.com/article/detail/1146659339214393344 https://blog.csdn.net/ ...
随机推荐
- PHP四大主流框架的优缺点总结
本篇文章我们来讲讲PHP四大框架的优缺点都有哪些,让你们在开发中更好的去选择使用哪款PHP框架去完成项目,废话不多说,我们一起来看看吧!! ThinkPHP ThinkPHP(FCS)是一个轻量级的中 ...
- oracle数据库创建实例
数据库已经安装完成,可以正常登陆查看用户等操作 system用户只能用normal身份登陆em.除非你对它授予了sysdba的系统权限或者syspoer系统权限. sys用户具有“SYSDBA”或者“ ...
- Linux中 ps命令的参数讲解
Linux命令ps: (Process Status的缩写)该命令常常用来用来列出系统中当前运行的进程.ps是显示瞬间进程的状态,并不动态连续:如果想对进程进行实时监控应该用top命令 -a 显示所有 ...
- 洛谷$P2604\ [ZJOI2010]$网络扩容 网络流
正解:网络流 解题报告: 传送门$QwQ$ 昂第一问跑个最大流就成不说$QwQ$ 然后第二问,首先原来剩下的边就成了费用为0的边?然后原来的所有边连接的两点都给加上流量为$inf$费用为$w$的边,保 ...
- $CH5104\ I-country$ 线性$DP$
CH Sol ”凸联通块“是什么意思呢? 其实就是图形的左端点先减小再增大,右端点先增大再减小 阶段 考虑到第k行,已经选了i个格子 状态 1.第i行的左端点与右端点 2.这一行的左端点相对于上一行的 ...
- 基于Github Pages + docsify,我花了半天就搭建好了个人博客
目录 前言 一些说明 准备工作 上docsify官网看一看 使用docsify命令生成文档站点 部署到Github上 写在最后 前言 "作为一个真正的码农,不能没有自己的个人博客" ...
- spring-boot第一章:快速开始
快速开始 创建pom.xml文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns= ...
- OpenJ_Bailian 4103 踩方格(搜索 动态规划 )
题目传送门OpenJ_Bailian 4103 描述 有一个方格矩阵,矩阵边界在无穷远处.我们做如下假设:a. 每走一步时,只能从当前方格移动一格,走到某个相邻的方格上:b. 走过的格子立 ...
- Queue and deque
Queue : 队列 队列(Queue)是常用的数据结构,可以将队列看成特殊的线性表,队列限制了对线性表的访问方式:只能从线性表的一端添加(offer)元素,从另一端取出(poll)元素. 队列遵循先 ...
- 2019年全网最热门的123个Java并发面试题总结
前言 并发编程几乎是所有互联网公司面试必问的问题,并发编程是Java程序员最重要的技能之一,也是最难掌握的一种技能.它要求编程者对计算机最底层的运作原理有深刻的理解,同时要求编程者逻辑清晰.思维缜密, ...