安装之前先了解下mysql 不同版本的区别
1. MySQL Community Server 社区版本,开源免费,但不提供官方技术支持。
2. MySQL Enterprise Edition 企业版本,需付费,可以试用30天。
3. MySQL Cluster 集群版,开源免费。可将几个MySQL Server封装成一个Server。
4. MySQL Cluster CGE 高级集群版,需付费。
5. MySQL Workbench(GUITOOL)一款专为MySQL设计的ER/数据库建模工具。它是著名的数据库设计工具DBDesigner4的继任者。MySQLWorkbench又分为两个版本,分别是社区版(MySQL Workbench OSS)、商用版(MySQL WorkbenchSE)。
MySQL Community Server是开源免费的,这也是我们通常用的MySQL的版本。
首先到官网下载资源文件
https://dev.mysql.com/downloads/mysql/
将解压后的文件放到自己指定的目录 开始配置
先配置系统环境 path 设置为 mysql 的bin目录 也可以用 %MYSQL_HOME%
然后设置mysql的配置文件 一个 叫 my.ini 的文件
my.ini 文件里面的的内容:
这个配置看需要我这个是百度的
中文内容可能会有乱码,我这边是把中文删了,应该对数据库的初始化没有影响
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=C:\mysql-8.0.14-winx64 # 此为你自己的文件目录
# 设置mysql数据库的数据的存放目录
datadir=C:\mysql-8.0.14-winx64\data # data是新增的文件夹名
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统]
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
配置好之后进入命令行
直接输入cmd 就会就会跳转至当前目录下的命令行,也可以cd cd ... 注意:可能报权限不足
1.首先执行初始化命令
mysqld --initialize --console
期间我这里报了个错误
the program can't start because msvcp140.dll
这个是由于缺少c++函数库引起的 直接下载一个安装不用重启系统
https://www.smartftp.com/zh-cn/support/kb/2757
2.初始化后 执行安装命令
mysqld --install
如果安装失败,检查目录或者系统配置是否正确
3.输入net start mysql启动数据库
我这边又报了个错
system error 2 has occurred
刚开始一直以为.ini文件配置有问题 之后百度到方法
因为之前系统安装过mysql 注册表信息没有清理干净导致的这个错误,当然也有可能是其他问题
如果没有就跳过这一环节
1,打开注册表方式cmd输入regedit
2,
3,
这里填的其实也不是真的mysql路径 而是bin目录下的mysqld,保存就可以启动了
4.登录 输入命令
mysql -u root -p
输入初始化生成的密码
这个页面就是成功了。
然后要修改一下root账号的密码
ALTER USER "root"@"localhost" IDENTIFIED BY "Root@123";
但是还需要有一些配置,mysql8.0默认只能本地连接。用navicat或者datagrip远程连会发现连不上 网上好多解决方式我找了一个比较简单的。解决方式如下
查看user表,修改连接级别
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select host,user from user;
+-----------+------------------+
| host | user |
+-----------+------------------+
| localhost | root |
| localhost | mysql.infoschema |
| localhost | mysql.session |
| localhost | mysql.sys |
+-----------+------------------+
4 rows in set (0.00 sec)
可以看到,root用户的host值为localhost,这代表只能本地连接,将localhost修改为%
update user set host='%' where user='root';
使用navicat连接测试时,会提示无法解析主机名相关的错误,这是mysql8的一些安全策略的问题,解决办法如下
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'yourpassword';
FLUSH PRIVILEGES;
原因:在MySQL 8.0.11中,caching_sha2_password是默认的身份验证插件,而不是以往的mysql_native_password
window系统下mysql就配置完成了
将mysql 注册成服务
mysqld --install mysql
卸载mysql服务
mysqld --remove mysql