1.mysql简介
MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。
ps:之前我用oracle,没有用mysql (所以以下是新手上手过程)。公司准备做微服务,考虑用mysql,原因是分布式开发数据库的性能,mysql的分片和量级。
2.zip解压方式安装
2.1下载mysql 解压包
https://dev.mysql.com/downloads/file/?id=480557
可以直接点击No thanks 下载 。
2.2 解压(位置哪儿都可以)
目录如上图
2.3 在mysql目录下新增一个my.ini启动配置内容
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录(注意:自己的安装目录)
basedir=D:\mysql-8.0.13-winx64
# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错(注意:自己的安装目录)
datadir=D:\mysql-8.0.13-winx64\logdata
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
注意:[mysql] 表示客户端配置 【mysql】表示服务端配置
如果没有[]内容,安装会报错:xxx,line xx
2.4 以管理员身份启动命令窗口(下面会详解)
管理员身份打开命令窗口方法可以自行百度
切换到mysql 安装目录下
cd D:\mysql-8.0.13-winx64\bin
初始化数据库
mysqld --initialize --console
初始化后,会打出初始化密码 (记住)
输入安装命令
mysqld install
会提示安装成功,
若出现 Install/Remove of the Service Denied!,说明没有用管理员身份运行命令窗口。
启动服务
net start mysql
至此mysql服务已经启动成功。
2.5进入本地mysql
输入命令
mysql -u root -p
然后回车后
Enter password:输入初始化生成的密码
进入本地mysql
3.msi安装包自动安装教程;
下载地址:
https://dev.mysql.com/downloads/file/?id=480824
直接安装即可
4.删除mysql服务
mysql重复安装,但是注册表里面还有mysql信息,所以重新安装而且不删除原来的信息,会安装不成功。
所以可以删除注册里面mysql信息:
4.1 window+R :输入regedit进入注册表,
路径:
\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\MySQL
\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL
删除整个文件夹即可
注:服务禁用服务注册表里面还有,彻底删除从服务注册表里面删除。
4.2 删除注册表后,命令窗口执行 sc delete mysql 删除mysql服务(否则安装新的mysql 会提示路径找不到之类的)
4.3 重新安装即可。
5.mysql 服务重启后自动停止问题
执行完net start mysql 后,连接mysql 一直提示:Can’t connect to MySQL server on xxx (10061)
一看是服务启动问题,就去计算机管理中找到mysql服务,重启,但是重启后就会自动停止。
解决方案:可以看mysql的日志,查看生成日志文件或命令行输入
mysqld --console
我的报了以下错误
查询后得知可能是因为my.ini中加入了
skip-grant-tables(跳过授权表,用于用户验证和密码修改)
所以去掉,启动服务后不会自动停止了,问题解决
ps:可能有其他原因,具体问题具体分析,查询过程中发现还有日志的配置与日志数量对不上导致启动后自动停止的。
6.You must reset your password using ALTER USER statement before executing this statement.
访问mysql成功后,执行查询 select 或者show 都会提示
You must reset your password using ALTER USER statement before executing this statement.(意思是让修改密码)。
原因
Joker_Ye 老师有个博客解释了,不能转载,大家可以去看
https://blog.youkuaiyun.com/hj7jay/article/details/65626766