MySQL5安装和配置

日期:2020-09-13

操作系统:64位 Windows 10专业版(2004)

MySQL版本:5.7.31


目录

  • MySQL5安装和配置
  • 1、下载MySQL数据库
  • (1)安装版
  • (2)解压版
  • (3)下载结果
  • 2、安装版安装
  • (1)运行安装程序
  • (2)配置MySQL
  • 3、解压版安装
  • (1)下载压缩包,解压到某个目录
  • (2)在MySQL安装目录下创建配置文件my.ini
  • (3)配置环境变量
  • (4)以管理员身份运行cmd,执行以下命令
  • 4、启动、停止MySQL服务
  • (1)通过计算机管理方式
  • (2)通过命令行方式
  • 5、登录MySQL数据库
  • (1)使用 DOS 命令登录MySQL数据库
  • (2)通过命令行客户端软件登录 MySQL 数据库
  • 6、MySQL常用命令
  • 7、MySQL目录结构
  • (1)bin目录
  • (2)data目录
  • (3)doc目录
  • (4)include目录
  • (5)lib目录
  • (6)share目录
  • (7)my.ini文件
  • 8、MySQL配置文件详解


1、下载MySQL数据库

最新版MySQL下载地址

配置 centos bond0_配置 centos bond0

(1)安装版

配置 centos bond0_MySQL_02

(2)解压版

配置 centos bond0_配置 centos bond0_03


配置 centos bond0_MySQL_04

(3)下载结果

配置 centos bond0_配置 centos bond0_05

2、安装版安装

安装版安装的好处是:可以选择需要的组件安装,配置相对简单,后续可以通过MySQL Installer方便地添加、修改、更新、移除组件

(1)运行安装程序

配置 centos bond0_数据库_06


这里选择自定义安装才能更改安装位置,否则默认安装在C盘,如果熟悉了MySQL,建议选择自定义安装

配置 centos bond0_配置 centos bond0_07


配置 centos bond0_mysql_08


配置 centos bond0_MySQL_09


安装 Windows 系统框架(Framework),单击 Execute 按钮,安装程序会自动完成框架的下载,进行安装即可

配置 centos bond0_数据库_10


所需框架均安装成功后,点击 Next 按钮

配置 centos bond0_数据库_11


进入安装确认窗口,点击 Execute 按钮,开始 MySQL 各个组件的安装

配置 centos bond0_mysql_12


安装完成后在【Status】列表下显示 Complete

配置 centos bond0_MySQL_13

(2)配置MySQL

在安装的最后一步中,点击 Next 按钮进入服务器配置窗口,进行配置信息的确认,确认后点击 Next 按钮

配置 centos bond0_数据库_14


配置 centos bond0_MySQL_15


配置 centos bond0_MySQL_16


配置 centos bond0_数据库_17


配置 centos bond0_配置 centos bond0_18


配置完成,点击execute

配置 centos bond0_MySQL_19


在“Starting the server”位置卡住不动,然后提示错误无法安装,可能是你下载的数据库版本过高与系统不匹配,可以降低数据库版本或者升级系统版本。

接下来finish、next,即安装完成了

打开任务管理器,可以看到MySQL服务正在运行

配置 centos bond0_数据库_20

3、解压版安装

请务必仔细地按照步骤说明和截图所示进行,尽量一次成功,如果不行,使用 mysqld -remove 命令卸载MYSQL服务,并删除整个MySQL文件夹,再重新解压,开始再次安装。

(1)下载压缩包,解压到某个目录

配置 centos bond0_mysql_21

(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

配置 centos bond0_mysql_22

(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服务

配置 centos bond0_数据库_23

  • mysqld --initialize --console ,初始化MySQL服务,在指定目录下生成data文件夹,生成随机密码并在控制台显示

配置 centos bond0_MySQL_24


初始化完成后,生成的data文件夹

配置 centos bond0_数据库_25

  • net start mysql ,启动MySQL服务

配置 centos bond0_数据库_26

  • mysql -u root -p ,回车输入密码, 登录数据库,输入密码时请务必小心,这是最容易出错的地方

配置 centos bond0_MySQL_27

  • 修改密码,以下三种方式都可以,一般第一种就可以了
  • alter user 'root'@'localhost' identified by '123456';

配置 centos bond0_MySQL_28


set password for root@localhost=password('1234567');

配置 centos bond0_mysql_29


update mysql.user set authentication_string=password("xxx") where user="root"; flush privileges;

配置 centos bond0_数据库_30

4、启动、停止MySQL服务

MySQL 服务和 MySQL 数据库不同,MySQL 服务是一系列的后台进程,而 MySQL 数据库则是一系列的数据目录和数据文件。

MySQL 数据库必须在 MySQL 服务启动之后才可以进行访问。

Windows 系统下启动停止 MySQL 服务的方式主要有以下两种:

  1. 通过计算机管理方式
  2. 通过命令行方式
(1)通过计算机管理方式

配置 centos bond0_配置 centos bond0_31


选中右键,可以将服务状态设置为“启动”、“停止”、“暂停”、“恢复”、“重新启动”

右键属性,还可以设置启动类型,可以选择“自动(延迟启动)”、“自动”、“手动”和“禁用”

如果需要经常练习 MySQL 数据库的操作,可以将 MySQL 设置为自动启动,这样可以避免每次手动启动 MySQL 服务。当然,如果使用 MySQL 数据库的频率很低,可以考虑将 MySQL 服务设置为手动启动,这样可以避免 MySQL 服务长时间占用系统资源。

(2)通过命令行方式

管理员身份运行cmd命令,不以管理员身份运行会拒绝访问

net start MySQL服务名
net stop MySQL服务名

配置 centos bond0_MySQL_32

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 后面是用户登录密码。

配置 centos bond0_MySQL_33

当命令提示符变为“mysql>”时,表明已经成功登录 MySQL数据库,可以开始对数据库进行操作了

(2)通过命令行客户端软件登录 MySQL 数据库

当 MySQL 安装版 安装完后,一般都会有一个简单命令行使用程序(MySQL Command Line Client),

可在开始菜单中找到

打开后输入密码即可登录,但只能登录root账户

配置 centos bond0_数据库_34

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‘查找

配置 centos bond0_mysql_35

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 目录是隐藏的,需要取消隐藏。

配置 centos bond0_MySQL_36

(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 服务才会有效

暂时就写到这了,刚开始写博客,不太熟练,写得不好的地方请大家见谅!