数据库相关概念
💡数据库系统
( DataBase System, 简称 DBS)
是指计算机系统引入数据库后的系统构成, 是一个具有管理数据库功能的计算机软硬件综合系统
。 数据库系统可以实现有组织地、动态地存储大量数据、提供数据处理和资源共享的服务。
💡数据库管理系统
数据库管理系统为用户或应用程序提供访问数据库的方法,包括:数据库的建立、查询、更新及各种数据操作。
数据库管理系统是位于用户与操作系统之间的一层数据管理软件, 在数据库建立、 运用和维护时对数据库进行统一控制、统一管理, 使用户能方便地定义数据和操纵数据, 并能够保证数据的安全性、 完整性、 多用户对数据的并发使用及发生故障后的系统恢复。
如MySQL、SQL Server、Oracle、PostgreSQL等。
💡数据库管理工具
随着数据库技术的发展,人们就想到一些基础的操作:比如新建、删除、查询、修改数据库或者表能不能不用自己写SQL语句,把这些模版化的东西做成软件让开发人员的工作更加方便。
用数据库管理工具连接数据库是需要数据库驱动
的,navicat内置了数据库驱动
,所以可以直接连接服务器上的数据库。 但是在自己本地计算机时,要安装数据库,并安装相应的数据库驱动那个程序
。
因而,可以直接在navicat连接MySQL数据库,但是在自己本地计算机需要安装数据库以及相应的数据驱动
MySQL安装
通常有两种安装方式,此处用的是zip安装
详情见Mysql 数据库的安装(zip文件和msi文件两种方式安装)
安装步骤
😃下载压缩包
先去官网下载zip压缩包,地址:(这里下载的是8.0.12)MySQL :: Download MySQL Community Server (Archived Versions)
😃解压到安装目录
😃创建配置文件
创建my.ini配置文件,记得更改自己的安装目录
[mysqld]
#设置端口号
port=3306
#设置mysql的安装目录
#切记此处一定要用双斜杠\\
basedir=H:\\Program Files (x86)\\mysql-8.0.12-winx64\\
#设置mysql数据库的数据存放目录
datadir=H:\\Program Files (x86)\\mysql-8.0.12-winx64\\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
😃配置环境变量
右击我的电脑,属性,高级系统设置,环境变量(或者直接电脑搜索栏搜索环境变量)
编辑Path变量,新增刚刚MySQL的bin目录
以管理员身份打开 cmd,验证环境
输入mysql --version即可显示MySQL版本信息
😃初始化数据库
以管理员身份打开 cmd
因为已经配置了环境变量,直接管理员方式打开的cmd命名的全局目录就可以运行以下命令
如果电脑安装了多个mysql,则最好进入到安装的mysql bin目录下再运行以下命令
#查询服务,会提示没有该服务
sc query mysql
#初始化mysql,生成data文件内容,同时打印相关日志
mysqld --initialize --user=mysql --console
😃安装服务
(提示:Service successfully installed.就证明你安装成功了)
#安装mysql服务
mysqld --install
😃开启mysql服务
这个时候运行 mysql -uroot -p 会报错
ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)
net start mysql开启服务,也可以直接搜索服务打开本地服务可视化手动开启
然后查询服务,可能会出现服务状态还是stopped的情况
这个原因可能是注册表的路径不对,win+R 输入 regedit打开注册表,找到这个路径计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL
查看MySQL的ImagePath是否与自己的安装目录一致,否则右键编辑改成自己的目录
改完之后再开启服务
net start mysql
查询服务,发现state 变成Running状态了
sc query mysql
😃登录mysql
这个时候就可以登录mysql了,用的是前面提到的随机密码
mysql -uroot -p
😃设置root密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
select host,user,authentication_string from mysql.user;
查询user信息
😃退出登录
输入quit即可退出登录
补充
关于MySQL的版本:
-
MySQL Community Server 是MySQL的免费开源版本,适合于开发人员和中小型企业使用。它包含了数据库的核心功能,能够满足绝大多数应用场景的基本需求。
-
MySQL Enterprise Edition 版本是定位于企业级应用的MySQL版本,提供全面的数据库解决方案和服务。这个版本在Community版的基础上,增加了许多企业关键应用所需的高级功能。
-
MySQL Standard Edition 版本适合需要较高安全和可靠性的中小型企业。虽然不如Enterprise Edition功能全面,但它提供了企业级的核心功能。
-
MySQL Cluster CGE(Commercial Grade Edition)是一个专为高可用性、高吞吐量、低延迟的应用场景设计的MySQL版本。它是一个真正的分布式数据库解决方案。
常用指令
- 连接进入 :mysql -u root -p ( mysql -h主机地址 -u用户名 -p用户密码)
- 退出: exit (回车)或quit 或\q
- 创建数据库:create database testDB default charset utf8;
- 展示所有数据库: show databases;
- 切换数据库:use testDB;
- 创建表:CREATE TABLE customers (name VARCHAR(255), address VARCHAR(255));
- 展示所有表格:show tables;
- 插入数据:INSERT INTO customers (name, address) VALUES ("Eva", "Hangzhou");
- 插入数据:INSERT INTO customers (name) VALUES ("Yang");
- 展示表的结构:desc customers;
- 展示表的所有数据:select * from customers;
- 插入新列:ALTER TABLE customers ADD COLUMN id INT AUTO_INCREMENT PRIMARY KEY;
- 检查端口占用:netstat -ano,如果没有找到3306,说明端口没有被占用
- 修改root密码-step1:alter user 'root'@'localhost' identified by '123456';
- 修改root密码-step2:flush privileges;
- 修改root密码-step3:exit
- 修改root密码-step4:service mysql restart 重启服务。
参考资料
MySQL问题解决记录:ERROR 1045 (28000): Access denied for user ‘ODBC‘@‘localhost‘ (using password: YES/NO)
ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)