参考:https://blog.csdn.net/daemon329/article/details/106170743
https://blog.csdn.net/weixin_45851945/article/details/114287877
概述
数据库管理系统 ( DataBase Management System )
数据库 ( DataBase , 简称DB )
概念 : 长期存放在计算机内,有组织,可共享的大量数据的集合,是一个数据 “仓库”
作用 : 保存,并能安全管理数据(如:增删改查等),减少冗余…
数据库总览 :
- 关系型数据库 ( SQL )
- MySQL , Oracle , SQL Server , SQLite , DB2 , …
- 关系型数据库通过外键关联来建立表与表之间的关系
- 非关系型数据库 ( NOSQL )
规范化和性能的关系
为满足某种商业目标 , 数据库性能比规范化数据库更重要
在数据规范化的同时 , 要综合考虑数据库的性能
通过在给定的表中添加额外的字段,以大量减少需要从中搜索信息所需的时间
通过在给定的表中插入计算列,以方便查询
安装MySQL
1.Windows安装
- 注意事项
- 尽可能使用压缩包安装(安装快,方便,不复杂); 尽量不要下载使用exe的(卸载非常麻烦,注册表)
- 电脑是64位的就下载使用64位版本的
- 如果您以前装过,现在需要重装,一定要将环境清理干净
- 官网下载MySQL(搜索mysql8.0)
下载地址:https://dev.mysql.com/downloads/mysql/
- 解压与配置
- 解压到自己想要安装到的目录,本人解压到的是D:\mysql\mysql-8.0.23-winx64
- 添加环境变量:我的电脑->属性->高级->环境变量
选择PATH, 在其后面添加: 你的mysql 安装路径下面的bin
- 解压后的目录中是没有的my.ini文件的,自行添加的my.ini,写入以下数据:
[mysqld]
port=3306
basedir=D:\mysql\mysql-8.0.23-winx64\MySQL
datadir=D:\mysql\mysql-8.0.23-winx64\MySQL\Data
max_connections=200
max_connect_errors=10
character-set-server=utf8mb4
default-storage-engine=INNODB
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
default-character-set=utf8mb4
[client]
port=3306
default-character-set=utf8mb4
- 初始化
- 管理员模式下的CMD至mysql下的bin目录,然后输入
mysqld –install [服务名]
(安装mysql, 其中服务名默认为mysql, 可省略) - 再输入
mysqld --initialize-insecure --user=mysql
初始化数据文件 - 然后再次启动mysql 然后用命令
mysql –u root –p
进入mysql管理界面(密码可为空) - 进入界面后更改root密码
- 管理员模式下的CMD至mysql下的bin目录,然后输入
update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost';
- 刷新权限
flush privileges;
- 修改 my.ini文件删除最后一句 skip-grant-tables
- 重启mysql即可正常使用
net stop mysql
net start mysql
测试连接:
- 连接数据库
mysql -u... -p...
,出现以下结果就安装好了
2.Linux安装
普通安装教程:https://www.cnblogs.com/wangpeng00700/p/13539856.html
用Docker安装:
- 查看可用版本 :访问https://hub.docker.com/_/mysql?tab=tags 或
docker search mysql
- 查看可用版本 :访问https://hub.docker.com/_/mysql?tab=tags 或
- 拉取官方的镜像
docker pull mysql:latest #最新 docker pull mysql:8.0.26 #8.0.26版本
- 拉取官方的镜像
- 3.查看拉取的镜像
docker images
- 4.运行容器
docker run -itd --name mysql8.0 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
- 参数说明:
- -p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务
- MYSQL_ROOT_PASSWORD=123456:设置 MySQL 服务 root 用户的密码为123456
- 参数说明:
- 5.通过
docker ps -a
命令查看是否安装成功 - 6.本机可以通过 root 和密码 123456 访问 MySQL 服务
进入容器--> docker exec -it 容器ID /bin/bash
连接数据库--> mysql -h localhost -u root -p123456
7.远程连接
添加、授权远程用户登录
CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
登录
- sqlyog
- navicat
注意事项:连接不上远程数据库?
1.数据库没有为此主机授权
ALTER USER 'username'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密规则 (远程)
(*如*:mysql>ALTER USER 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;)
或
GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '密码' WITH GRANT OPTIO
(*如*:mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTIO)
2.服务器防火墙未关闭或未开放3306端口
3.可视化软件
Sqlyog
sqlyog是用于管理MySQL数据库的软件工具(只能连接Mysql)
安装教程:https://www.cnblogs.com/xiaoran991/p/12375562.html
Navicat
navicat可以连接多个种关系型/非关系型数据库(mysql/oracle、mogodb…)
安装教程:https://www.cnblogs.com/kkdaj/p/14987106.html
4.几个基本的数据库操作命令
mysql -h localhost -u root -p密码 #宿主机本地连接数据库命令
mysql -h 宿主机IP -u root -p密码 #远程
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密规则 (本地)
ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密规则 (远程)
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; #更新用户的密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password'; #更新用户的密码(远程)
flush privileges; 刷新数据库
show databases; 显示所有数据库
use dbname;打开/选择某个数据库
show tables; 显示数据库mysql中所有的表
describe user; 显示表mysql数据库中user表的列信息
create database dbname; 创建数据库
alter database dbname character set utf8; 将数据库的字符集修改为utf8
exit; 退出Mysql
? 命令关键词 : 寻求帮助
-- 表示注释