一、简介
资料来源:菜鸟教程和《MySQL必知必会》
MySQL 是最流行的RDBMS(Relational Database Management System:关系数据库管理系统),特别是在WEB应用程序方面
个人主要应用:在Linux服务器端,作为C++程序或Python脚本的基础资源池,为前者提供变量赋值、数据处理及结果存储的支持,用脚本或程序对数据库操作,否则太费劲了。
架构:采用服务器端和客户端分离架构(也可以同时安装在一台电脑上),使用户不具有对数据的直接访问权限,服务器软件控制用户的权限及数据请求
二、 常用术语
类比Excel谈RDBMS术语
术语 | 解释 |
---|---|
数据库(database) | 为一组相互关联的表的集合,数据库间相互隔离 |
表(table) | 由行和列组成的表格,例如:表名1等等 |
行 | 或称之为“记录、元组“,各行均为并列关系 |
列 | 每一列为“记录”的一个数据元素 |
主键 | 用于唯一确定行,特点:存储的数据不能重复,一个表只有一个主键,例如图中黄色那一列 |
外键 | 用于关联本数据库中其他表,外键为另一个表的主键或值唯一列,例如图中蓝色那一列,一个表中外键可以有多个 |
表头 | 列的名称(A~G字母行),创建表时会预定义数据是否可以为空,存储的数据类型,分配的存储空间大小,键值 |
值(value) | 表格内存储的数据,必须与列定义的数据类型相同,甚至支持二进制文件(影音、各类文件存储), 建议是在数据库里存二进制文件的地址,二进制的文件放在规划好的文件夹内,检索响应会提高 |
三、安装
3.1 CentOs 8:
- 服务端
登录及查看 (注意:语句遇分号才执行,且多个空格算一个)yum install -y mysql #安装客户端 yum install -y mysql-server #安装服务器端 systemctl enable mysqld #设置开机启动MySQL服务 systemctl start mysqld #启动MySQL服务 systemctl status mysqld #查看MySQL服务设置情况
- 客户端
3.2 mac:
- 服务器端
brew install mysql@5.7 # 不写@5.7表示安装最新版本 ##############安装之后会有提示################## echo 'export PATH="/usr/local/opt/mysql@5.7/bin:$PATH"' >> ~/.zshrc #添加环境变量 exec zsh # 加载环境变量 cd /usr/local/opt/mysql@5.7/bin # 切换到安装目录下 ./mysql_secure_installation # 初始化设置mysql brew services start mysql@5.7 # 开启mysql服务 brew services list #查看MySQL服务设置情况
- 客户端(Navicat for MySQL)
3.3 win10安装
- 服务端
-
选择社区版(免费)
-
选安装mysql服务器
-
下载软件
- 客户端(SQLyog)
- 登录界面(初始化密码见下节)
- 登录后界面
- 登录界面(初始化密码见下节)
四、数据库基本操作
1. root用户初始密码
- Linux
- 空:enter进入
- 随机:
cat /var/log/mysqld.log | grep "temporary password"
- win10
- 输入:powershell进入到软件安装目录
C:\Program Files\MySQL\MySQL Server 8.0\bin
- 初始密码:输入命令
./mysql -u root -p
,进入mysql内(密码为空,直接按enter
键) - 修改密码:5.6之前的版本
set password = password(‘123’)
,8.0的用set password = ‘123’
用错命令会提示:ERROR 1064(42000):You have an error in your SQL syntax;。。。。
还不行可以试试:ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
- 输入:powershell进入到软件安装目录
2. 基本操作
mysql [-h 192.168.1.100] -u root -p # 链接数据库,若非本地服务器,则加中括号
alter user 'root'@'localhost' identified by '123'; # 修改root密码
SHOW DATABASES; #显示所有数据库
USE mysql; #根据显示的数据库选择,mysql为已存在的数据库名
SHOW TABLES; #显示mysql数据库中的所有表
SHOW GRANTS [FOR 用户名]; #显示用户权限,无中括号则全部显示
SHOW ERRORS; #显示服务器错误信息(更严重)
SHOW WARNINGS; #显示服务器警告信息
exit; #退出
五、Mac忘记密码
操作步骤
- 关闭mysql服务器:系统偏好里有个 MySQL 里关闭
- 进入命令目录:
cd /usr/local/mysql/bin
- 获取权限
sudo su
- 重启服务器
./mysqld_safe --skip-grant-tables &
- 重开个终端
mysql -uroot -p
(提示输入密码时随便输入即可) - 获取权限,要不它不让你改
flush privileges;
- 设置新密码
set password for 'root'@'localhost'=password('新密码');