下载
下载免安装版mysql
dev.mysql.com/downloads/m…
安装
解压安装包,移动到MySql安装目录
设置环境变量
MYSQL_HOME C:\Mysql
path 添加 %MYSQL_HOME%\bin
配置my.ini,
进入mysql文件夹,新建my.ini文件
[mysqld]
#端口号
port = 3306
#mysql-5.7.27-winx64的路径
basedir=E:\Program Files\Mysql\mysql-5.7.27-winx64
#mysql-5.7.27-winx64的路径+\data
datadir=E:\Program Files\Mysql\mysql-5.7.27-winx64\data
#最大连接数
max_connections=200
#编码
character-set-server=utf8
default-storage-engine=INNODB
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysql]
#编码
default-character-set=utf8
| 参数名称 | 说明 |
|---|---|
| port | 表示 MySQL 服务器的端口号 |
| basedir | 表示 MySQL 的安装路径 |
| datadir | 表示 MySQL 数据文件的存储位置,也是数据表的存放位置 |
| default-character-set | 表示服务器端默认的字符集 |
| default-storage-engine | 创建数据表时,默认使用的存储引擎 |
| sql-mode | 表示 SQL 模式的参数,通过这个参数可以设置检验 SQL 语句的严格程度 |
| max_connections | 表示允许同时访问 MySQL 服务器的最大连接数。其中一个连接是保留的,留给管理员专用的 |
| query_cache_size | 表示查询时的缓存大小,缓存中可以存储以前通过 SELECT 语句查询过的信息,再次查询时就可以直接从缓存中拿出信息,可以改善查询效率 |
| table_open_cache | 表示所有进程打开表的总数 |
| tmp_table_size | 表示内存中每个临时表允许的最大大小 |
| thread_cache_size | 表示缓存的最大线程数 |
| myisam_max_sort_file_size | 表示 MySQL 重建索引时所允许的最大临时文件的大小 |
| myisam_sort_buffer_size | 表示重建索引时的缓存大小 |
| key_buffer_size | 表示关键词的缓存大小 |
| read_buffer_size | 表示 MyISAM 表全表扫描的缓存大小 |
| read_rnd_buffer_size | 表示将排序好的数据存入该缓存中 |
| sort_buffer_size | 表示用于排序的缓存大小 |
安装mysql
进入mysql/bin,打开cmd
安装命令
- 安装mySql服务
mysqld -install - 生成mySql库,记住这条命令产生的随机密码
mysqld --initialize --console - 启动mySql服务
net start mysql - 登录mysql数据库
mysql -u root -p - 修改root密码
alter user 'root'@'localhost' identified by "manager1"; - 进入数据库 -系统数据库mysql
use mysql. - 修改root账号可以远程访问
update user set host ='%' where user ='root'; - 刷新配置
flush privileges;
### 安装mySql服务
C:\MySql\bin>mysqld -install
Service successfully installed.
### 生成mySql库,记住这条命令产生的随机密码
C:\MySql\bin>mysqld --initialize --console
2023-08-24T07:36:00.229290Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2023-08-24T07:36:00.361806Z 0 [Warning] InnoDB: New log files created, LSN=45790
2023-08-24T07:36:00.382275Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2023-08-24T07:36:00.475586Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: df34b023-4250-11ee-b53c-000c29f1533a.
2023-08-24T07:36:00.479318Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2023-08-24T07:36:01.617835Z 0 [Warning] A deprecated TLS version TLSv1 is enabled. Please use TLSv1.2 or higher.
2023-08-24T07:36:01.618190Z 0 [Warning] A deprecated TLS version TLSv1.1 is enabled. Please use TLSv1.2 or higher.
2023-08-24T07:36:01.618911Z 0 [Warning] CA certificate ca.pem is self signed.
2023-08-24T07:36:01.813977Z 1 [Note] A temporary password is generated for root@localhost: PvMywqdie2:;
C:\MySql\bin>
### 启动mySql服务
C:\MySql\bin>net start mysql
MySQL 服务正在启动 .
MySQL 服务已经启动成功。
### 登录mysql数据库
C:\MySql\bin>mysql -u root -p
Enter password: ************
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.35
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
### 修改root密码
mysql> alter user 'root'@'localhost' identified by "manager1";
Query OK, 0 rows affected (0.00 sec)
### 进入数据库 -系统数据库mysql
mysql> use mysql;
Database changed
### 修改root账号可以远程访问
mysql> update user set host='%' where user = 'root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
### 刷新配置
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql>
mysql 8.0修改密码方式(特别注意)
alter user 'root'@'%' identified with mysql_native_password by 'root';
alter user 'root'@'localhost' identified with mysql_native_password by 'root';
12
Queation
1. mysql 1449 : The user specified as a definer ('root'@'%') does not exist
解决方法:权限问题,授权 给 root 所有sql 权限
mysql> grant all privileges on *.* to root@"%" identified by ".";
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
2. ERROR 1045 (28000)
有时候我们登录Mysql输入密码的时候 错误:ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES) 或者: 错误:ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO)
解决办法:修改my.in/my.cnf配置文件
进入mysql安装目录,编辑my.ini,在[mysqld]下添加skip-grant-tables跳过登录验证,保存即可。
使用管理员身份打开命令行
- 重启mysql:
net stop mysql
net start mysql
2. 进入mysql,登录mysql -u root -p,不用输入密码,直接回车(出现Enter Password 也一样直接回车,即可登陆成功)
3. 输入use mysql,修改root的密码:
### mysql8.0之前版本采用:
update user set authentication_string=password(‘新密码’) where user=‘root’;
flush privileges;
### mysql8.0版本采用:
alter user ‘root’@‘%’ identified with mysql_native_password by ‘root’;
alter user ‘root’@‘localhost’ identified with mysql_native_password by ‘root’;
flush privileges;
4. 退出:quit;
5. 再次重启mysql:
net stop mysql
net start mysql
6. 测试是否成功就是是否登陆成功咯。
mysql -u root -p
Enter Password>‘新密码’
3. MSVCR120.dll VCRUNTIME140_1.dll
对mysql初始化的时候遇到的问题,描述如下:无论是: "由于找不到MSVCR120.dll,无法继续执行代码。重新安装程序可能会解决此问题",还是 "由于找不到VCRUNTIME140_1.dll,无法继续执行代码。重新安装程序可能会解决此问题" 这是安装mysql-8.0.20初始化的时候会遇到的报错。 这种错误是由于电脑系统缺少部分配置文件引起的,安装 vcredist下载相关配置文件即可。
4. 用navicat连接MySQL8+时会出现2059错误
这是由于在mysql8之前的版本中加密规则为mysql_native_password,而mysql8以后版本的MySQL使用的是caching_sha2_password验证方式,但此时的navicat还没有支持这种验证方式。
一种是更新navicat驱动来解决此问题, 一种是将mysql用户登录的加密规则修改为mysql_native_password。 本文采用第二种方式。 在命令行中登录数据库时不会出现2059错误,所以在命令行中登录数据库, 执行下面的命令。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
FLUSH PRIVILEGES;
5. MySQL server has gone away
修改my.ini 加入 max_allowed_packet=2048M 调整到合适大小
wait_timeout=288000
interactive_timeout = 288000
6. Navicat运行sql文件报错:1292
[ERR] 1292 - Incorrect datetime value: '0000-00-00 00:00:00' for column 'created_at' at row 1
1
修改sql_mode(将上述查询到的sql_mode中的NO_ZERO_DATE和NO_ZERO_IN_DATE删除即可)
# 修改全局
set @@global.sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
# 修改当前
set @@sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
SQL Mode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。
还可以在MySQL配置文件mysql.ini中修改sql_mode配置,这样就不需要每次重启MySQL就得重新设置sql_mode了
在my.ini的[mysqld]下添加:
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
1
然后重启mysql。
MySQL卸载
卸载很方便,使用管理员权限打开命令提示符,依次输入下面命令。
结束MySQL服务:net stop mysql
删除MySQL服务:mysqld -remove mysql或sc delete mysql
删除MySQL的文件夹
删除MySQL环境变量
卸载解压版MySQL
(1). 关闭服务 以管理员身份运行cmd,命令:
net stop mysql
(2). 卸载服务 以管理员身份运行cmd,命令:
mysqld -remove [服务名]
(3). 删除文件 删除mysql安装目录
(4). 删除注册表信息 清除注册表中的该MySQL服务,有几个地方:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL 目录删除
HKEY_LOCAL_MACHINE\\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL 目录删除
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL 目录删除
注册表中的ControlSet001、ControlSet002不一定是001和002,可能是ControlSet005、006之类,删除的时候都删除就可以 。
其他
(1). data文件错误 错误描述:在启动mysql服务时,提示:
mysql服务无法启动。服务器没有报告任何错误。请键入 NET HELPMSG 3534 以获得更多的帮助。
错误原因:一般初始化之前已存在data文件就会出现这个错误,或者data文件缺少了某些文件 解决方法:先执行命令:
mysqld -remove [服务名]
然后把data文件夹删除,如果删除不了重启一下就可以了,之后重新进行安装就没问题了