一、Mysql 数据库
-
数据库的作用和优势
- 作用:集中化存储结构性的数据。
- 优势:
- 减小数据冗余,避免数据的重复存储。
- 保证数据的真实有效和唯一性,提高数据的质量。
- 方便数据共享访问,使得不同的用户和应用可以方便地获取所需数据。
- 集中化管理方便数据备份,确保数据的安全性。
- Mysql 数据库特点:
- 支持多进程多用户,可以同时为多个用户和进程提供服务。
- 采用 C/S 设计结构,客户端和服务器分离,提高了系统的可扩展性和灵活性。
- 简单易用支持图形化界面,方便用户进行操作和管理。
- 安全可靠,提供了多种安全机制保障数据的安全。
-
常见数据库厂商
- Oracle 甲骨文:旗下的 Mysql 开源免费且跨平台,而 Oracle 数据库收费闭源且跨平台。
- Microsoft:Sql Server 是微软的数据库产品,只能运行在 Windows 平台使用。
-
安装 Mysql 依赖程序和创建管理组和用户
- 安装依赖程序,使用命令
[root@centos01 ~]# yum -y install ncurses-devel cmake
。 - 创建管理 Mysql 服务组,使用命令
[root@centos01 ~]# groupadd mysql
。 - 创建用户加入 Mysql 组管理 Mysql 服务,使用命令
[root@centos01 ~]# useradd -M -s /sbin/nologin -g mysql mysql
。
- 安装依赖程序,使用命令
二、安装配置 Mysql 服务
-
解压配置 Mysql
- 解压缩源代码程序,使用命令
[root@centos01 ~]# tar zxf /mnt/mysql-5.5.22.tar.gz -C /usr/src/
,然后切换到源代码目录[root@centos01 ~]# cd /usr/src/mysql-5.5.22/
。 - 配置源代码 Mysql,使用命令
[root@centos01 mysql-5.5.22]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DSYSCONFDIR=/etc
,指定安装位置、默认字符编码、检验字符编码、支持更多字符编码以及初始化 Mysql 参数临时存储目录。 - 编译安装 Mysql,使用命令
[root@centos01 mysql-5.5.22]# make && make install
。 - 检查是否创建安装目录,使用命令
[root@centos01 mysql-5.5.22]# ls -ld /usr/local/mysql/
。
- 解压缩源代码程序,使用命令
-
生成配置文件和服务控制文件
- 生成配置文件,使用命令
[root@centos01 mysql-5.5.22]# cp support-files/my-medium.cnf /etc/my.cnf
。 - 生成服务控制文件,使用命令
[root@centos01 mysql-5.5.22]# cp support-files/mysql.server /etc/init.d/mysqld
。 - 添加执行权限,使用命令
[root@centos01 mysql-5.5.22]# chmod +x /etc/init.d/mysqld
。 - 添加系统服务,使用命令
[root@centos01 mysql-5.5.22]# chkconfig --level 35 mysqld on
,然后切换到主目录[root@centos01 mysql-5.5.22]# cd
。
- 生成配置文件,使用命令
-
优化 Mysql 命令
- 优化 Mysql 命令,在
/etc/profile
文件中添加PATH=$PATH:/usr/local/mysql/bin/
。 - 更新优化命令,使用命令
[root@centos01 ~]# source /etc/profile
。 - 初始化 Mysql,使用命令
[root@centos01 ~]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
。
- 优化 Mysql 命令,在
-
启动 Mysql 服务设置密码登录 Mysql
- 启动 Mysql 服务,使用命令
[root@centos01 ~]# systemctl start mysqld
。 - 监听 Mysql 进程,使用命令
[root@centos01 ~]# netstat -anptu | grep mysqld
。 - 设置密码,使用命令
[root@centos01 ~]# mysqladmin -uroot password
。 - 登录 Mysql 数据库,使用命令
[root@centos01 ~]# mysql -uroot -密码
- 退出 Mysql,在 Mysql 命令行中输入
exit
。
- 启动 Mysql 服务,使用命令
三、Mysql 数据库表记录管理授权
-
数据库管理
- 查看数据库,在 Mysql 命令行中输入
show databases;
。 - 创建数据库名字,使用命令
create database 名字;
。 - 删除数据库,使用命令
drop database 名字;
。 - 创建并切换到数据库,使用命令
create database benet;
创建 benet 数据库,然后使用use benet;
切换到 benet 数据库中。
- 查看数据库,在 Mysql 命令行中输入
-
表的管理
- 创建表设计表结构表的名字 student 放在 benet 数据库中,使用命令
create table benet.student (学号 int,姓名 char(7),性别 char(4),身份证号码 char(18),primary key (身份证号码));
。 - 查看表,先使用
use benet;
切换到 benet 数据库,然后使用show tables;
查看创建的表。 - 删除 student 表,可以使用
drop table student;
或drop table benet.student;
。
- 创建表设计表结构表的名字 student 放在 benet 数据库中,使用命令
-
表中记录管理
- 查看表结构,使用命令
desc student;
。 - 插入连续列数据到 student 表,使用命令
insert into benet.student values (1,"名字","男","111111111111111111");
。 - 插入不连续列,使用命令
insert into benet.student (学号,姓名,身份证号码) values (2,'名字','22222222222222222');
。 - 查询 Mysql 数据,使用命令
select * from benet.student;
。 - 修改数据,如将姓名是名字的性别修改为男,使用命令
update benet.student set 性别="男" where 姓名="名字";
,修改多列值可以使用update benet.student set 学号="3",性别="女" where 姓名="名字";
。 - 查看指定列数据,使用命令
select 姓名,身份证号码 from benet.student;
。 - 删除匹配条件的用户,使用命令
delete from benet.student where 姓名="用户";
。 - 清空表中数据,使用命令
delete from benet.student;
。
- 查看表结构,使用命令
-
Mysql 数据库授权
- Mysql 数据库权限类型:
- all:完全控制权限。
- insert:插入数据。
- delete:删除数据。
- update:修改数据。
- select:查询权限。
- 安装 Mysql 客户端,使用命令
[root@centos02 ~]# yum -y install mariadb-devel mariadb
。 - 授权 bob 用户通过主机 192.168.100.20 访问 Mysql 服务器密码为 密码,允许访问 benet 数据库下所有表进行插入数据,使用命令
mysql> grant insert on benet.* to 'bob'@'192.168.100.20' identified by '密码';
。 - 客户端远程登录,使用命令
[root@centos02 ~]# mysql -h 192.168.100.10 -ubob -密码 客户端名字
。 - 查看用户访问 mysql 数据库权限,使用命令
mysql> show grants for 'bob'@"192.168.100.20";
。 - 授权完全控制权限,使用命令
mysql> grant all on benet.* to 'tom'@'192.168.100.30' identified by 'pwd@12345';
。 - 撤销授权,使用命令
mysql> revoke all on benet.* from 'tom'@'192.168.100.30';
。 - 更新数据库,使用命令
mysql> flush privileges;
。
- Mysql 数据库权限类型:
通过以上步骤,我们可以成功安装、配置和管理 Mysql 数据库,实现对数据库表的创建、查询、修改和删除等操作,以及进行数据库授权管理,确保数据的安全和有效访问。