MySQL5安装和配置
日期:2020-09-13
操作系统:64位 Windows 10专业版(2004)
MySQL版本:5.7.31
目录
1、下载MySQL数据库
(1)安装版
(2)解压版
(3)下载结果
2、安装版安装
安装版安装的好处是:可以选择需要的组件安装,配置相对简单,后续可以通过MySQL Installer方便地添加、修改、更新、移除组件
(1)运行安装程序
这里选择自定义安装才能更改安装位置,否则默认安装在C盘,如果熟悉了MySQL,建议选择自定义安装
安装 Windows 系统框架(Framework),单击 Execute 按钮,安装程序会自动完成框架的下载,进行安装即可
所需框架均安装成功后,点击 Next 按钮
进入安装确认窗口,点击 Execute 按钮,开始 MySQL 各个组件的安装
安装完成后在【Status】列表下显示 Complete
(2)配置MySQL
在安装的最后一步中,点击 Next 按钮进入服务器配置窗口,进行配置信息的确认,确认后点击 Next 按钮
配置完成,点击execute
在“Starting the server”位置卡住不动,然后提示错误无法安装,可能是你下载的数据库版本过高与系统不匹配,可以降低数据库版本或者升级系统版本。
接下来finish、next,即安装完成了
打开任务管理器,可以看到MySQL服务正在运行
3、解压版安装
请务必仔细地按照步骤说明和截图所示进行,尽量一次成功,如果不行,使用
mysqld -remove
命令卸载MYSQL服务,并删除整个MySQL文件夹,再重新解压,开始再次安装。
(1)下载压缩包,解压到某个目录
(2)在MySQL安装目录下创建配置文件my.ini
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=D:\Developer\DB\Database\mysql-5.7.31\
# 设置mysql数据库的数据的存放目录
datadir=D:\Developer\DB\Database\mysql-5.7.31\data\
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 允许最大连接数
max_connections=20
# 允许连接失败的次数。
max_connect_errors=10
# 严格模式
#sql_mode="NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES"
# 默认使用“mysql_native_password”插件认证
#default_authentication_plugin=mysql_native_password
# 跳过密码验证,设置密码后注释掉
#skip-grant-tables
(3)配置环境变量
如果不配置环境变量,每次登录MySQL 服务器时就必须进入到 MySQL 的 bin 目录下,才能执行 MySQL 的命令,这样比较麻烦。
配置环境变量以后就可以在任意位置执行 MySQL 的命令
- 进入环境变量配置窗口,新建MYSQL_HOME变量,变量值为“D:\Program Files\MySQL\MySQL Server 5.7”(改为自己的解压目录)
- 在Path变量值最前面添加“%MYSQL_HOME%\bin;”,确定保存,环境变量从上往下读取,添加在最前面可以防止被覆盖
(4)以管理员身份运行cmd,执行以下命令
mysqld -install
,安装MySQL服务
mysqld --initialize --console
,初始化MySQL服务,在指定目录下生成data文件夹,生成随机密码并在控制台显示
初始化完成后,生成的data文件夹
net start mysql
,启动MySQL服务
mysql -u root -p
,回车输入密码, 登录数据库,输入密码时请务必小心,这是最容易出错的地方。
-
修改密码,以下三种方式都可以,一般第一种就可以了
alter user 'root'@'localhost' identified by '123456';
或 set password for root@localhost=password('1234567');
或 update mysql.user set authentication_string=password("xxx") where user="root";
和 flush privileges;
4、启动、停止MySQL服务
MySQL 服务和 MySQL 数据库不同,MySQL 服务是一系列的后台进程,而 MySQL 数据库则是一系列的数据目录和数据文件。
MySQL 数据库必须在 MySQL 服务启动之后才可以进行访问。
Windows 系统下启动停止 MySQL 服务的方式主要有以下两种:
- 通过计算机管理方式
- 通过命令行方式
(1)通过计算机管理方式
选中右键,可以将服务状态设置为“启动”、“停止”、“暂停”、“恢复”、“重新启动”
右键属性,还可以设置启动类型,可以选择“自动(延迟启动)”、“自动”、“手动”和“禁用”
如果需要经常练习 MySQL 数据库的操作,可以将 MySQL 设置为自动启动,这样可以避免每次手动启动 MySQL 服务。当然,如果使用 MySQL 数据库的频率很低,可以考虑将 MySQL 服务设置为手动启动,这样可以避免 MySQL 服务长时间占用系统资源。
(2)通过命令行方式
以
管理员身份
运行cmd命令,不以管理员身份运行会拒绝访问
net start MySQL服务名
net stop MySQL服务名
5、登录MySQL数据库
登录MySQL数据库前,需确保MySQL 服务已开启
(1)使用 DOS 命令登录MySQL数据库
以
管理员身份
运行cmd命令,不以管理员身份运行会拒绝访问
mysql [-h 主机名 -P 端口号] -u root -p回车再输入密码 密码不会明文显示
mysql -h localhost -u root -p密码 p和密码之间不能有空格,这种方式密码会明文显示,不安全
status 查看MySQL信息
show databases; 查看所有数据库
exit; 或 quit; 退出登录
mysql 为登录命令,-h 后面的参数是服务器的主机地址,在这里客户端和服务器在同一台机器上,所以输入 localhost 或者 127.0.0.1;-u 后面跟登录数据库的用户名称,在这里为 root;-p 后面是用户登录密码。
当命令提示符变为“mysql>”时,表明已经成功登录 MySQL数据库,可以开始对数据库进行操作了
(2)通过命令行客户端软件登录 MySQL 数据库
当 MySQL 安装版 安装完后,一般都会有一个简单命令行使用程序(MySQL Command Line Client),
可在开始菜单中找到
打开后输入密码即可登录,但只能登录root账户
6、MySQL常用命令
前缀为:C:\Windows\system32>
cls 清除屏幕内容
sc delete mysql 删除MysQL服务,慎用
mysqld -remove 卸载MySQL服务
mysqld -install 安装MySQL服务
mysqld --initialize 初始化MySQL服务,在MysQL目录下生成data文件夹,生成密码但不在控制台显示,可在data文件夹后缀名为.err的文件中,Ctrl+F搜索’password‘查找
mysqld --initialize --console 初始化MySQL服务,在MysQL目录下生成data文件夹,生成密码并在控制台显示
mysqld --initialize-insecure 初始化MySQL服务,在MysQL目录下生成data文件夹,不生成密码
net start mysql 启动MySQL服务
net stop mysql 停止MySQL服务
mysql [-h 主机名 -P 端口号] -u root -p回车再输入密码 密码不会明文显示
mysql [-h 主机名 -P 端口号] -u root -p密码 p和密码之间不能有空格,这种方式密码会明文显示,不安全
mysql -u root -p
mysql>
# 授权
grant all privileges on *.* to user@'ip' identified by 'password' with grant option;
flush privileges;
#all privileges: 授予所有权限(即select、update、insert和delete)
#*.*: 第一个“*”代表授权访问所有的数据库,第二个"*"代表数据库中的所有的表
#user: 授予访问权限的用户
#ip: 授予访问权限的ip地址,%代表所有ip
#password: 授予访问权限的密码
#with grant option: 授予可以授予权限的权限
#grant all privileges on *.* to root@'192.168.3.21' identified by '123456' with grant option: 授予192.168.3.21这个IP这样的权限,以root用户登录,密码为123456,可以访问所有数据库中的所有表并且可以进行增删查改操作,而且可以授予其他人权限。
#修改密码
alter user 'root'@'localhost' identified by '密码';
或
set password for root@localhost=password('xxxxxx');
或
update mysql.user set authentication_string=password("xxx") where user="root";
flush privileges 刷新权限
#退出登录
exit; 或 quit;
status #查看MySQL信息
select version(); #查看MySQL版本
或
C:\Windows\system32>mysql --version
或
C:\Windows\system32>mysql -V
#查看数据库表
show databases; 查看所有数据库
use mysql; 切换数据库
show tables; 查看当前库所有表
show tables from mysql; 不切换数据库,查看其他库所有表
select database(); 查看当前数据库
desc user; 查看表结构,desc为describe的缩写
当前连接进程
show processlist;
最大连接数
show global variables like "%max_connections%";
最大等待秒数
show global variables like "%wait_timeout%";
最大错误连接数
show global variables like "%max_connect_errors%";
source D:/xxx.sql 使用脚本文件,导入数据
7、MySQL目录结构
MySQL安装版的
data目录
和my.ini
文件可能不在 MySQL 的安装目录下,而是在 “C:\ProgramData\MySQL\MySQL Server 5.7 ”或其他自定义的目录下。一般情况下,C 盘下的 ProgramData 目录是隐藏的,需要取消隐藏。
(1)bin目录
用于放置MySQL常用的命令工具以及管理工具,如 mysql.exe、mysqld.exe、mysqlshow.exe 等。
(2)data目录
登录数据库后,可使用 SHOW GLOBAL VARIABLES LIKE "%Datadir%";
命令查看 data 目录位置。
data 目录中用于放置一些数据文件以及日志文件,我们创建和保存的数据都存在这个目录里。
(3)doc目录
存放一些帮助文档。
(4)include目录
用于放置一些头文件,如:mysql.h、mysql_ername.h 等。
(5)lib目录
用于放置一系列库文件。
(6)share目录
用于存放字符集、语言等信息
(7)my.ini文件
除了
my.ini
文件,MySQL 安装目录下可能还有几个后缀名为.ini
的配置文件,这些是适合不同数据库的配置文件的模板。my.ini 是 MySQL 默认使用的配置文件,MySQL 服务器启动时会读取这个配置文件,
通过修改这个文件并
重启服务
,可以更新配置
- my-huge.ini:适合超大型数据库的配置文件。
- my-large.ini:适合大型数据库的配置文件。
- my-medium.ini:适合中型数据库的配置文件。
- my-small.ini:适合小型数据库的配置文件。
- my-template.ini:是配置文件的模板,MySQL 配置向导将该配置文件中选择项写入到 my.ini 文件。
- my-innodb-heavy-4G.ini:表示该配置文件只对于 InnoDB 存储引擎有效,而且服务器的内存不能小于 4GB。
8、MySQL配置文件详解
[client]
port=3306 MySQL客户端连接服务器端时使用的端口号
[mysql]
default-character-set=utf8 MySQL 客户端默认的字符集
[mysqld]
port=3306 MySQL服务器的端口号
basedir=C:/Program Files/MySQL/MySQL Server 5.7/ MySQL的安装路径
datadir=C:/ProgramData/MySQL/MySQL Server 5.7/Data MySQL数据文件的存储位置,也是数据表的存放位置
character-set-server=utf8 服务器端默认的字符集
default-storage-engine=INNODB 创建数据表时,默认使用的存储引擎
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" SQL模式的参数,通过这个参数可以设置检验 SQL 语句的严格程度
max_connections=100 允许同时访问 MySQL 服务器的最大连接数。其中一个连接是保留的,留给管理员专用的
query_cache_size=0 查询时的缓存大小,缓存中可以存储以前通过 SELECT 语句查询过的信息,再次查询时就可以直接从缓存中拿出信息,可以改善查询效率
table_cache=256
tmp_table_size=35M 内存中每个临时表允许的最大大小
thread_cache_size=8 缓存的最大线程数
myisam_max_sort_file_size=100G MySQL 重建索引时所允许的最大临时文件的大小
myisam_sort_buffer_size=69M 重建索引时的缓存大小
key_buffer_size=55M 关键词的缓存大小
read_buffer_size=64K MyISAM表全表扫描的缓存大小
read_rnd_buffer_size=256K 将排序好的数据存入该缓存中
sort_buffer_size=256K 用于排序的缓存大小
以下是 InnoDB 存储引擎使用的参数
innodb_additional_mem_pool_size=3M 附加的内存池,用来存储 InnoDB 表的内容。
innodb_flush_log_at_trx_commit=1 设置提交日志的时机,若设置为 1,InnoDB 会在每次提交后将事务日志写到磁盘上
innodb_log_buffer_size=2M 用来存储日志数据的缓存区的大小
innodb_buffer_pool_size=107M 缓存的大小,InnoDB 使用一个缓冲池类保存索引和原始数据
innodb_log_file_size=54M 日志文件的大小
innodb_thread_concurrency=18 在 InnoDB 存储引擎允许的线程最大数
每次修改 my.ini 文件中的参数后,必须重启 MySQL 服务才会有效
暂时就写到这了,刚开始写博客,不太熟练,写得不好的地方请大家见谅!
如果您觉得这篇文章对您有帮助,就请随意点个赞吧!您的鼓励是将我坚持创作的巨大动力!