MySQL

MySQL

1:数据库结构模型

数据库模型主要有:

  1. 层次模型
  2. 网络模型
  3. 关系模型
  4. 对象模型

关系模型:

二维关系:row(行), column(列)

数据库管理系统: DBMS

关系: Relational ,RDBMS

2: RDBMS专业名词

常见的关系型数据库管理系统

  1. MySQL:5.7之前版本是开源版本,8.0以后是商业软件
  2. PostgreSQL: 简称为pgsql
  3. Oracle (甲骨文)商业软件
  4. MSSQL (微软数据库)
  5. MariaDB: (MySQL团队开发的类似于MySQl的开源软件)

SQL: 结构化查询语言,语法规则:

  • 基础SQL指令通常是以行为单位

  • SQL指令需要语句结束符,默认是英文分号:;、\g、\G

    • \G:主要用于查询数据,立体展示结果

约束: 向数据表提供数据要遵守的限制

  1. 主键约束: (primay key ) 唯一且非空,必须提供数据
  2. 唯一约束 :(unique key) 唯一标识本行,可以空,但是只能有一个空值 不同于主键一个表可以有多个
  3. 检查约束: 对该列数据的范围、格式的限制
  4. ​ 默认约束:输入空值自动填入该数据的默认值
  5. ​ 外键约束: (foreign key) 建立两表间的关系并引用在主表的列中

**索引:**将表中的一个或多个字段中的数据复制一份另存,并且这些数据需要按特定次序排序存储,查询时起到字典目录的作用,提升查询效率

3 SQL语句

SQL语句有三种类型:

DDL: (Data Defination Language)数据定义语言
DML:( Data Manipulation Language)数据操纵语言
DCL: (Data Control Language)数据控制语言

SQL语句类型对应操作
DDLcreate : 创建
drop:删除
alter : 修改
DMLinsert: 向表中插入数据
delete: 删除表中的数据
update: 更新表中数据
select:查询表中的数据
DCLgrant: 授权
revoke: 移除授权

4: MySQL安装与配置

#: 安装依赖(系统环境redhat8)
[root@localhost local]# yum -y install ncurses-devel openssl-devel openssl cmake mariadb-devel

#: 将mysql源码包上传至服务器中或者直接使用wget下载进行解压
[root@localhost ~]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz

[root@localhost ~]# tar -xf mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz 
#: 将解压后的文件移动到/usr/local下,并改名为mysql
[root@localhost ~]# mv mysql-5.7.39-linux-glibc2.12-x86_64 /usr/local/mysql
[root@localhost ~]# ls /usr/local/
apache  apr-util  etc    include  lib64    mysql  share
apr     bin       games  lib      libexec  sbin   src
#: 创建mysql系统用户和mysql系统组
 [root@localhost ~]# groupadd -r mysql
[root@localhost ~]# useradd -r -s /sbin/nologin -M -g mysql mysql
[root@localhost ~]# id mysql
uid=993(mysql) gid=990(mysql) groups=990(mysql)
#:递归修改mysql文件夹的属主属组
[root@localhost ~]# cd /usr/local/
[root@localhost local]# chown -R mysql:mysql mysql
[root@localhost local]# ll -d mysql/
drwxr-xr-x. 9 mysql mysql 129 Aug 29 14:04 mysql/
[root@localhost local]# ll  mysql/
total 268
-rw-r--r--.  1 mysql mysql 255074 Jun  8  2022 LICENSE
-rw-r--r--.  1 mysql mysql    566 Jun  8  2022 README
drwxr-xr-x.  2 mysql mysql   4096 Aug 29 14:04 bin
drwxr-xr-x.  2 mysql mysql     55 Aug 29 14:04 docs
-----省略-----
#: 添加mysql的环境变量  
[root@localhost local]# echo 'export PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
[root@localhost local]# . /etc/profile.d/mysql.sh 
[root@localhost local]# echo $PATH
/usr/local/mysql/bin:/usr/local/apache/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

#: 建立mysql数据存放目录
[root@localhost local]# mkdir /opt/data
[root@localhost local]# chown -R mysql:mysql /opt/data/
[root@localhost local]# ll -d /opt/data
drwxr-xr-x. 2 mysql mysql 6 Aug 29 14:25 /opt/data

#: 初始化数据库
[root@localhost local]# ./mysql/bin/mysqld --initialize --user=mysql --datadir=/opt/data/
-------省略-------
 2023-08-29T06:30:30.734710Z 1 [Note] A temporary password is generated for root@localhost: lzH?uSii>4X%
***:最后一行有一个mysql登录的临时密码,只能使用一次,登录数据库后必重新设置一次密码

 #: 配置mysql
 [root@localhost local]# ls
apache  apr-util  etc    include  lib64    mysql  share
apr     bin       games  lib      libexec  sbin   src
[root@localhost local]# ln -s mysql/include/ include/mysql
[root@localhost local]# ll -d include/mysql 
lrwxrwxrwx. 1 root root 14 Aug 29 14:36 include/mysql -> mysql/include/
[root@localhost local]# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
[root@localhost local]# ldconfig

#: 生成配置文件
[root@localhost local]# cat > /etc/my.cnf <<EOF

> [mysqld]
> basedir = /usr/local/mysql
> datadir = /opt/data
> socket = /tmp/mysql.sock
> port = 3306
> pid-file = /opt/data/mysql.pid
> user = mysql
> skip-name-resolve
> EOF


#: 配置启动脚本
[root@localhost local]# cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@localhost local]# sed -ri 's#^(basedir=).*#\1/usr/local/mysql#g' /etc/init.d/mysqld
[root@localhost local]# sed -ri 's#^(datadir=).*#\1/opt/data#g' /etc/init.d/mysqld

#: 启动mysql
[root@localhost local]# service mysqld start
Starting MySQL.Logging to '/opt/data/localhost.localdomain.err'.
 SUCCESS! 
[root@localhost local]# ss -antl
State   Recv-Q  Send-Q   Local Address:Port     Peer Address:Port  
LISTEN  0       128            0.0.0.0:22            0.0.0.0:*     
LISTEN  0       80                   *:3306                *:*     
LISTEN  0       128                  *:80                  *:*     
LISTEN  0       128               [::]:22               [::]:* 
    
#: 修改mysql数据库的密码
[root@localhost lib]# mysql -uroot -p
Enter password: #:这个密码是初始化时自动生成的密码
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.39
mysql> set password = password('Liuhongsheng1');
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql> exit
Bye

#: 用户免密登录,在root家目录书写以下文件
[root@localhost ~]# cat .my.cnf
[client]
user = <用户名>
password = <密码>

如果登录时发现如下报错可以使用如下方式解决
#: 登录mysql时,出现的错误
mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
#: 此处报错信息提示缺少libncurses.so.5文件,在lib64里找到一个最新版本的做一个软连接,使文件存在
[root@localhost lib]# ln -s /lib64/libncurses.so.6.1  /usr/lib64/libncurses.so.5

#:再次登录时又缺少另外一个libtinfo.so.5[root@localhost lib]# mysql -uroot -p
mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
[root@localhost lib]# ln -s /lib64/libtinifo.so.6 /usr/lib64/libtinifo.so.5
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值