MySQL8 安装
本文内容为详细介绍,MySQL8在windows
上自主安装。mysql
官网其实也提供了msi
格式的windows安装程序。但是这样傻瓜式的安装,安装结果会有很多不知道的程序。所以个人还是比较乐于自己下载压缩包,然后安装自己一步步配置,完成自主可控的运行mysql
。
下载myql
虽然mysql
已经被Oracle
收购了,但是他的官网依然是https://www.mysql.com/,显然比java
幸运。
下载地址:https://dev.mysql.com/downloads/
点击``
MySQL Community Server
进入下载界面:
选择仅包含运行程序的版本就好了,因为不太需要用到调试之类的。
下载好程序之后解压到本地。文件目录如下
安装
添加配置文件
在解压好的mysql
文件夹的根目录下新建一个配置文件my.ini
. 这是mysql
默认的配置文件,添加配置内容。
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
socket=H:/dev/tools/mysql-8.0.29-winx64/mysql.sock
[mysqld]
skip-name-resolve
#设置3306端口
port=3306
socket=H:/dev/tools/mysql-8.0.29-winx64/mysqld.sock
# 设置mysql的安装目录
basedir=H:/dev/tools/mysql-8.0.29-winx64/
# 设置mysql数据库的数据的存放目录
datadir=H:/dev/tools/mysql-8.0.29-winx64/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character_set_server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
# 修改时区。如
default-time-zone = '+8:00'
# 添加密码验证插件, 保证后续能改正相应的密码策略
plugin-load-add=validate_password.dll
[mysqld_safe]
log_error=H:/dev/tools/mysql-8.0.29-winx64/data/error.log
pid_file=H:/dev/tools/mysql-8.0.29-winx64/data/mysql.pid
注意修改里面的绝对路径信息
初始化
默认的情况下mysql
没有提供相应的基础数据内容,但是可以通过命令行创建出。在windows的控制台中,进入到mysql
目录的bin
文件加中。运行如下命令.
mysqld --initialize --user=mysql --console
等待初始化完成之后可以看到mysql
的目录下面多了一个data
文件夹。同时从输出的消息中可以看到,程序为mysql
的root
用户生成了一个默认的密码.
2022-05-21T23:43:34.399056Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: fTzQ0BkeZx.q
后续可以用这个密码进行初次登录。
安装mysql服务
同样在mysql
程序的bin目录中运行如下命令。
mysqld install MySQL
运行完之后可以在windows
的服务中看到MySQL
服务了。这样就可以采用windows的服务来管理了。比如可以让他开机自启动,同时也可以关闭停止。
可以使用services.msc
命令进入服务页面。
services.msc
测试
在确保mysql
启动之后,使用mysql命令进入服务。
mysql -uroot -p
但是我比较悲剧居然遇到mysql识别到了IPV6
地址,不让我进。
ERROR 1130 (HY000): Host '::1' is not allowed to connect to this MySQL server
看来只能跳过正常的验证逻辑,先进去改配置了。
首先关闭mysql。
net stop MySQL
因为mysql8.0之后–skip-grant-tables不能在配置文件中配置了,如果继续在配置文件直接配置跳过,那客户端链接的时候直接MySQL
退出了。所以需要在mysql的bin目录中使用mysqld --console --skip-grant-tables --shared-memory
命令来启动的方式进行代替。然后在打开另一个cmd窗口,使用mysql
客户端无密码连接登录(mysql -uroot
) 。
进入mysql之后,在进入mysql
数据库,因为mysql
数据库是管理着用户权限的。
use mysql
修改只能登录的主机地址,让所有地址都可以登录(这样也开启了远程访问MySQL了).
update user set host='%' where user='root';
然后关闭刚才的命令行启动的mysql
服务。
再启动系统注册的MySQL
服务.
net start MySQL
现在就可以使用客户端正常登录了。因为我的密码是fTzQ0BkeZx.q
.
mysql -uroot -pfTzQ0BkeZx.q
以上就完成了mysql的用户名密码登录了。
修改密码
由于上面我们使用的是mysql随机生成的密码,进入之后其实不能进行任何操作,系统都会提示要求必须该密码。虽然应该有很多办法可以修改密码。但是比较简单而且靠谱的方法还是使用mysqladmin
来修改。
mysqladmin -uroot -pfTzQ0BkeZx.q password 你的新密码
执行完上面的命令之后密码就修改成功了。
完成这一步之后就可以正常使用mysql
了。
结束
整体而言MySQL8.0
版本的修改还是比较多。所以亲测了一把安装的效果,遇到了不少坑,但基本都解决了。本文也是算一个总结,以便自己以后查阅。