Appearance
MySQL 的版本
版本分类
MySQL 服务端提供了以下版本:
- MySQL Community Server:社区版本,免费,但是MySQL不提供官方技术支持。
- MySQL Enterprise Edition:商业版,该版本是收费版本,可以试用30天,官方提供技术支持
- MySQL Cluster:集群版,开源免费,可将几个MySQL Server封装成一个Server。
- MySQL Cluster CGE:高级集群版,需付费。
MySQL 的图形化客户端 MySQL Workbench(GUI TOOL):一款专为MySQL设计的ER/数据库建模工具。又分为两个版本:
- 社区版(MySQL Workbench OSS)
- 商用版(MySQL Workbench SE)
版本号
MySQL的命名机制使用由3个数字和一个后缀组成的版本号。例如,mysql-8.0.26的版本号的含义如下:
- 第1个数字(8)是主版本号,描述了文件格式。所有版本5的发行都有相同的文件格式。
- 第2个数字(0)是发行级别。主版本号和发行级别组合到一起便构成了发行序列号。
- 第3个数字(26)是在此发行系列的版本号,随每个新分发版递增。
目前,MySQL的最新版本为MySQL 8.0。
查询当前 MySQL 的版本
使用 MySQL 客户端登陆后,输入 select version(); 命令,即可查询当前 mysql 的版本号
sql
mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.30 |
+-----------+
1 row in set (0.02 sec)MySQL目录结构
Linux版本(待补充)
[!todo] 补充中...
windows版本
- bin:存放可执行文件,比如MySQL.exe
- data:存储的是MySQL默认的数据库
- include:存放的C语言的头文件
- lib:存放的C++的动态链接库
- my.ini:数据库的配置文件
启动 MySQL 服务器程序的相关可执行文件
启动 MySOL 服务器程序的可执行文件有很多,大多在 MySQL 安装目录的 bin 目录下。
mysqld(不常用)
mysqld这个可执行文件就代表着 MySOL 服务器程序,运行这个可执行文件就可以直接启动一个服务器进程。
mysqld_safe
mysqld_safe是一个启动脚本,它会间接的调用mysqld,而且还顺便启动了另外一个监控进程,这个监控进程在服务器进程挂了的时候,可以帮助重启它。- 除外,使用
mysqld_safe启动服务器程序时,它会将服务器程序的出错信息和其他诊断信息重定向到某个文件中,产生出错日志,方便找出发生错误的原因。
mysql.server
mysql.server也是一个启动脚本,它会间接的调用mysqld_safe。需要注意的是,这个mysql.server文件其实是一个链接文件,它的实际文件位置是support-files/mysql.server,所以如果在 bin 目录找不到,则到support-files去找,也可以自行用 ln 命令在 bin 创建一个链接。
在调用mysql.server时在后边指定start参数就可以启动服务器程序;如指定stop参数则关闭正在运行的服务器程序。
bash
# 开启MySQL服务
mysql.server start
# 关闭MySQL服务
mysql.server stopmysqld_multi
mysqld_multi可以一台计算机上也可以运行多个服务器实例(即运行了多个MySQL服务器进程)。此可执行文件可以对每一个服务器进程的启动或停止进行监控。
Linux 系统安装MySQL
下载 Linux 安装包
下载地址:https://dev.mysql.com/downloads/mysql/
安装 MySQL
- 卸载 centos 中预安装的 mysql
bash
rpm -qa | grep -i mysql
rpm -e mysql-libs-5.1.71-1.el6.x86_64 --nodeps- 上传 mysql 的安装包
alt + p --> put E:/test/MySQL-5.6.22-1.el6.i686.rpm-bundle.tar- 解压 mysql 的安装包
bash
mkdir mysql
tar -xvf MySQL-5.6.22-1.el6.i686.rpm-bundle.tar -C /root/mysql- 安装依赖包
bash
yum -y install libaio.so.1 libgcc_s.so.1 libstdc++.so.6 libncurses.so.5 --setopt=protected_multilib=false
yum update libstdc++-4.4.7-4.el6.x86_64- 安装 mysql-client
bash
rpm -ivh MySQL-client-5.6.22-1.el6.i686.rpm- 安装 mysql-server
bash
rpm -ivh MySQL-server-5.6.22-1.el6.i686.rpm启动/停止 MySQL 服务
bash
service mysql start
service mysql stop
service mysql status
service mysql restart登录 MySQL
mysql 安装完成之后, 会自动生成一个随机的密码, 并且保存在一个密码文件中:/root/.mysql_secret
bash
mysql -u root -p登录之后,修改密码:
bash
set password = password('123456');进入mysql,授权远程访问:
bash
grant all privileges on *.* to 'root' @'%' identified by '123456';
flush privileges;如果此时使用SSH软件还是无法远程连接mysql数据库,可能就是linux系统的防火墙导致的,所以需要设置关闭防火墙
bash
# 查询看防火墙状态
service iptables status
# 关闭防火墙(全部、暴力)
service iptables stopCentOS 7.4 安装与配置MySql 5.7.21(项目B安装)
环境
- 系统环境:centos-7.4 64位
- 安装方式:rpm安装
- 软件:mysql-5.7.21-1.el7.x86_64.rpm-bundle.tar
- 描述:上述的tar包中已经包含需要安装的rpm,所以只需要将其放置到系统中使用tar命令解包即可。
- Mysql的下载地址:http://dev.mysql.com/downloads/mysql/


系统原mariadb版本
bash
# 查看MySql与mariadb安装情况
# grep -i是不分大小写字符查询,只要含有mysql就显示
rpm -qa | grep -i mysql
rpm -qa | grep mariadb
# 卸载mariadb(会与mysql冲突)
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
安装新MySQL
使用winSCP将下载的“mysql-5.7.21-1.el7.x86_64.rpm-bundle.tar”传到虚拟机系统的/root目录下:

在终端上进入/root目录;解包.tar包
bash
# 对” mysql-5.7.21-1.el7.x86_64.rpm-bundle.tar”解包,不是压缩文件不需要解压缩
tar -xvf mysql-5.7.21-1.el7.x86_64.rpm-bundle.tar
执行如下安装命令:
bash
# 1、安装 mysql-community-common
rpm -ivh mysql-community-common-5.7.21-1.el7.x86_64.rpm
# 2、安装 mysql-community-libs
rpm -ivh mysql-community-libs-5.7.21-1.el7.x86_64.rpm
# 3、安装 mysql-community-client
rpm -ivh mysql-community-client-5.7.21-1.el7.x86_64.rpm
# 4、安装 mysql-community-server
yum -y install perl
rpm -ivh mysql-community-server-5.7.21-1.el7.x86_64.rpm
# 5、安装 mysql-community-devel
rpm -ivh mysql-community-devel-5.7.21-1.el7.x86_64.rpm安装完成。MySql默认安装文件位置:
/var/lib/mysql/ # 数据库目录
/usr/share/mysql # 配置文件目录
/usr/bin # 相关命令目录
/etc/my.cnf # 核心配置文件配置MySQL
启动mysql
bash
#启动mysql
service mysqld start
#重启mysql
service mysqld restart
#停止mysql
service mysqld stop
#查看mysql状态
service mysqld status
# 设置开机启动Mysql
systemctl enable mysqld
# 设置开机不启动Mysql
systemctl disable mysqld修改root密码
MySQL安装成功后,会生成一个临时密码,第一次登录需要输入这个密码,所以查看该临时密码,然后修改密码。
bash
# 查看临时密码(/var/log/mysqld.log)
grep password /var/log/mysqld.log
# 使用root登录
mysql –uroot –p
# 然后输入/var/log/mysqld.log文件中的临时密码。登录后;修改密码为Root_123
set password = password('Root_123');注意:密码必须包含大小写字母、数字、特殊符号

在 mysql 内置密码校验器,用于校验用户设置的密码复杂度。使用以下命令可以查看密码校验的规则:
sql
mysql> SHOW VARIABLES LIKE 'validate_password.%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password.check_user_name | ON |
| validate_password.dictionary_file | |
| validate_password.length | 8 |
| validate_password.mixed_case_count | 1 |
| validate_password.number_count | 1 |
| validate_password.policy | MEDIUM |
| validate_password.special_char_count | 1 |
+--------------------------------------+--------+通过以下命令,降低密码的校验规则
bash
set global validate_password.policy = 0;
set global validate_password.length = 4;设置简单的密码
sql
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';Notes: 官方文档地址:https://dev.mysql.com/doc/refman/8.0/en/validate-password-options-variables.html
设置允许远程访问
因为 root 用户默认的主机是 localhost,为了可以远程访问 mysql 服务,需要将 root 用户的主机地址修改为 *。(或者创建主机地址为 * 的其他用户)
bash
#登录,密码为新修改的密码Root_123
mysql -uroot –p
#设置远程访问(使用root密码):
mysql> grant all privileges on *.* to 'root' @'%' identified by 'Root_123';
mysql> flush privileges;设置3306端口可以被访问
bash
# 退出mysql,防火墙中打开3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent参数说明:
–zone:作用域-–add-port=3306/tcp:添加端口,格式为:端口/通讯协议-–permanent:永久生效,没有此参数重启后失效
bash
# 重启防火墙
firewall-cmd --reload
# 查看已经开放的端口
firewall-cmd --list-ports
# 停止防火墙
systemctl stop firewalld.service
# 启动防火墙
systemctl start firewalld.service
# 禁止防火墙开机启动
systemctl disable firewalld.serviceMySQl 安装(Windows 免安装版)
解压与创建配置文件
- 将MySQL软件包解压在没有中文和空格的目录下
- 在解压目录创建my.ini文件并添加内容如下:

配置环境变量
- 在【我的电脑】右键 -> 选择【高级系统设置】 -> 选择【高级】 -> 【环境变量】。设置环境变量将【
MYSQL_HOME】添加到PATH环境变量


配置系统开启服务
使用管理员权限进入DOS,在cmd中,进入解压目录下的bin目录依次执行以下命令:
- 对mysql进行初始化。请注意,这里会生成一个临时密码,后边要使用这个临时密码
bash
mysqld --initialize --user=mysql --console- 安装mysql服务
bash
mysqld --install- 启动mysql服务
bash
net start mysql- 登录mysql,这里需要使用之前生成的临时密码。如果窗口关了没有记录临时密码,可以将mysql目录下的data目录删除,然后再进行初始化
bash
mysql -uroot –p- 修改root用户密码
bash
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';- 修改root用户权限
bash
create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';mysql 服务启动时报“某些服务在未由其他服务或程序使用时将自动停止”
在配置文件中有 secure-file-priv 的配置,如果设置了此目录,本来解压后是没有此目录的,如果不手动创建,启动时会报错。

当时排查很久都不知道是什么原因,后来查询资料,发现 mysqld --console 命令可以将错误信息输出到控制台上,然后就看到具体的无法启动的报错日志

然后在配置的位置手动创建相应的目录,问题就解决了。

安装 MySQL 8.0(Windows版本)
安装包下载
下载地址:https://downloads.mysql.com/archives/installer/

安装步骤(截图,不完整,日后优化)
此安装示例使用 mysql-installer-community-8.0.27.1.msi
自定义安装




注:以上可以不选择相关文档与示例的组件















默认选择安装


当所有的状态都变成Complete之后,点击 Next





设置密码,用于登陆数据,建议使用学习的设置简单的密码
配置环境变量
配置环境变量与windows免安装版一样
开启/停止 MySQL 服务(Windows版本)
启动MySQL服务方式1
MySQL会以windows服务的方式为我们提供数据存储功能。开启和关闭服务的操作:
- 右键点击我的电脑 --> 管理 --> 服务与应用程序 --> 服务 --> 找到 MySQL 服务开启或停止。
- 或者:开始 --> 搜索 --> services.msc --> 服务 --> 可以找到 MySQL 服务开启或停止。
(如果不需要开机时就启动MySQL,右键MySQL --> 属性 --> 启动类型选“手动”)

启动MySQL服务方式2
在DOS窗口,通过命令完成MySQL服务的启动和停止(必须以管理员身份运行cmd命令窗口)
- MySQL 启动:
net start mysql - MySQL 关闭:
net stop mysql

Tips: 上述命令的
mysql是在安装 MySQL 时,默认指定的 mysql 的系统服务名,不是固定的,如果未改动,5.7版本默认是mysql,8.0版本默认是mysql80。
客户端连接 MySQL
MySQL 是一个需要账户名密码登录的数据库,登陆后使用,它提供了一个默认的root账号,使用安装时设置的密码即可登录。
方式一:使用 MySQL 提供的客户端命令行工具

方式二:使用系统自带的命令行工具执行指令
使用 CMD 命令行窗口,可以操作登陆与退出 MySQL,命令语法如下:
bash
mysql [-h 127.0.0.1] [-P 3306] -u root -p参数说明:
-h:MySQL 服务所在的主机 IP-P:MySQL 服务端口号,默认3306。注意:参数是大写-u:MySQL 数据库用户名-p:MySQL 数据库用户名对应的密码。注意:参数是小写
[] 内为可选参数,如果需要连接远程的 MySQL,需要加上这两个参数来指定远程主机 IP、端口,如果连接本地的 MySQL,则无需指定这两个参数。
Tips: 使用这种方式进行连接时,需要安装完毕后配置PATH环境变量。
示例1:使用 cmd 命令行输入 mysql –u用户名 –p密码

示例2:使用 cmd 命令行输入 mysql --user=用户名 --password=密码 --host=ip地址 --port=端口号(这种方式一般用来登陆别人的数据库)

退出连接 MySQL
直接使用 exit 命令即可退出 MySQL 连接
其他操作数据库方式
- 通过第三方图形化界面操作
- 通过Java代码操作
卸载MySQL(Windows版本)
- 先停止MySQL服务
- 方式1:输入命令行
net stop mysql。注:命令中的mysql是服务名称,需要输入根据实际的名称 - 方式2:【win+r】打开“运行”面板,输入
services.msc,进行服务窗口中关闭mysql服务
- 方式1:输入命令行
- 卸载程序。到【控制面板】中的【程序和功能】中卸载,或者使用第三方的卸载工具,如:Geek Uninstaller
- 删除根文件夹。进入sql安装位置,手动删除mysql的解压(安装)的文件夹
- 删除C盘隐藏的数据文件夹(可选):”C:\ProgramData\MySQL“。注:如果安装或者改了配置文件,此数据文件夹目录可能不一样
- 删除注册表信息。【win+r】打开“运行”面板,输入
regedit命令打开注册表窗口,删除以下文件:

- 删除环境变量的配置。进行【高级系统设置】中的【环境变量】,删除安装后配置
MYSQL_HOME变量和删除path变量中的mysql路径 - 删除MySQL服务。使用管理员方式打开cmd命令行窗口,输入命令
sc delete Mysql服务名称
MySQL 常用图形管理工具
Navicat
Navicat是一套快速、可靠的数据库管理工具,Navicat 是以直觉化的图形用户界面而建的,可以兼容多种数据库,支持多种操作系统。
官网:http://www.navicat.com.cn/download/navicat-premium
SQLyog
SQLyog 是一个快速而简洁的图形化管理 MySQL 数据库的工具,它能够在任何地点有效地管理你的数据库,由业界著名的 Webyog 公司出品。
- 官网:https://sqlyog.en.softonic.com/
- SQLyog Community Edition 下载地址:https://github.com/webyog/sqlyog-community/wiki/Downloads
安装与连接
安装:提供的 SQLyog 软件为免安装版,可直接使用
使用:输入用户名、密码,点击连接按钮,进行访问MySQL数据库进行操作

在 Query 窗口中,输入 SQL 代码,选中要执行的 SQL 代码,按 F8/F9 键运行,或按执行按钮运行。

SQLyog 常用快捷键
Object Browser
- F5:刷新浏览对象
- F8:运行当前的查询并且编辑运行结果
- F9:运行当前的查询
- Ctrl+F9:运行选中的多条查询语句
- Shift+F9:运行所有的查询语句
SQL Formatter
- F12:格式化当前查询语句
- Ctrl+F12:格式化选中的查询语句
- Shift+F12:格式化所有的查询语句
SQL Window
- Ctrl+Shift+C:注释选中的 SQL 语句
- Ctrl+Shift+R:删除选中的 SQL 语句
- Ctrl+Enter:显示所有的提示列表
MySQL Workbench
MySQL Workbench MySQL 是官方提供的图形化管理工具,分为社区版和商业版,社区版完全免费,而商业版则是按年收费。支持数据库的创建、设计、迁移、备份、导出和导入等功能,并且支持 Windows、Linux 和 mac 等主流操作系统。
下载地址:https://dev.mysql.com/downloads/workbench/
DataGrip
DataGrip 是一款由JetBrains公司出品的数据库管理客户端工具,方便连接到数据库服务器,执行sql、创建表、创建索引以及导出数据等
安装说明
点击next,一步一步的完成安装即可

选择DataGrip的安装目录,然后选择下一步


使用说明
- 添加数据源

配置以及驱动 jar 包下载完毕之后,就可以点击 "Test Connection" 就可以测试,是否可以连接 MySQL,如果出现 "Successed",就表示连接成功了。

- 展示所有数据库。连接上了 MySQL 服务之后,并未展示出所有的数据库,此时,需要设置展示所有的数据库。

- 创建数据库

以下两种方式都可以创建数据库:
create database db01;create schema db01;
- 创建表。在指定的数据库上面右键,选择 new -> Table

- 修改表结构。在需要修改的表上,右键选择 "Modify Table..."

- 如果想增加字段,直接点击+号,录入字段信息,然后点击Execute即可。
- 如果想删除字段,直接点击-号,就可以删除字段,然后点击Execute即可。
- 如果想修改字段,双击对应的字段,修改字段信息,然后点击Execute即可。
- 如果要修改表名,或表的注释,直接在输入框修改,然后点击Execute即可。
- 在 DataGrip 中执行 SQL 语句。在指定的数据库上,右键,选择 New -> Query Console

然后就可以在打开的 Query Console 控制台,并在控制台中编写 SQL,执行 SQL。

HeidiSQL
HeidiSQL 是免费软件,其目标是易于学习。“Heidi”让您可以从运行 MariaDB、MySQL、Microsoft SQL、PostgreSQL 和 SQLite 数据库系统之一的计算机上查看和编辑数据和结构。HeidiSQL 由 Ansgar 于 2002 年发明,属于全球最流行的 MariaDB 和 MySQL 工具。
其他工具
- phpMyAdmin
- MySQLDumper
- MySQL GUI Tools
- MySQL ODBC Connector