亮精精 發表於 2026-2-27 18:06:00

数据库服务基础管理操作

<h1 id="1数据库服务基础管理操作">1.数据库服务基础管理操作</h1>
<h2 id="1数据库服务连接管理">1)数据库服务连接管理</h2>
<pre><code class="language-bash">MySQL数据库服务应用架构:C/S
利用C/S架构管理数据库服务端时会有两种方式:
1.采用本地方式连接管理
mysql -uxxx -pxxx -S 套接字文件(/tmp/mysql.sock--数据库服务端启动时自动生成 关闭后自动删除)
2.采用远程方式连接管理
mysql -uxxx -pxxx -h地址/域名 -P端口号


附加内容
1./tmp/mysql.sock文件只在数据库服务端启动时,将自动生成,关闭后自动删除
#/etc/init.d/mysqld stop
Shutting down MySQL.. SUCCESS!
#ll /tmp/mysql.sock
ls: 无法访问/tmp/mysql.sock: 没有那个文件或目录
#/etc/init.d/mysqld start
Starting MySQL... SUCCESS!
#ll /tmp/mysql.sock
srwxrwxrwx 1 mysql mysql 0 2月27 08:48 /tmp/mysql.sock


2.socket文件在配置文件中已定义
#cat /etc/my.cnf

port=3306
user=mysql
datadir=/data/3306/data
basedir=/usr/local/mysql
socket=/tmp/mysql.sock⭐
或者在进程中也能筛选出来
#ps aux |grep mysql
......
--socket=/tmp/mysql.sock⭐
......
</code></pre>
<h3 id="企业应用数据库连接管理时可以采用什么方法">企业应用数据库连接管理时可以采用什么方法:</h3>
<h4 id="方法一利用数据库自带客户端命令进行管理">方法一:利用数据库自带客户端命令进行管理</h4>
<pre><code class="language-sh">mysql       -- 登录访问数据库程序
mysqladmin-- 实现多数据库进行管理 (密码管理/运行管理/日志切割管理)
mysqldump   -- 实现将数据库数据做备份/数据迁移
</code></pre>
<h4 id="方法二利用第三方工具进行连接管理有图形界面-方便管理">方法二:利用第三方工具进行连接管理(有图形界面-方便管理)</h4>
<pre><code class="language-sh">1.mysql workbench:数据库管理工具(官方-免费)⭐
直接下一步下一步安装即可


使用前要创造一个远程用户,以连接软件与数据库
create user root@'%' identified by '123456';
grant all on *.* to root@'%' with GRANT OPTION;


用户root,可连接范围%,密码123456
并授权所有权限给root
</code></pre>
<pre><code class="language-bash">2.DBeaver(连接数据库种类多)
3.NAVICAT(界面简洁,使用广泛-默认收费,需要购买激活码,或者破解使用)
</code></pre>
<h4 id="方法三利用连接器实现数据库服务连接管理了解">方法三:利用连接器实现数据库服务连接管理(了解)</h4>
<pre><code class="language-sh">需要开发人员进行配合代码程序 -- 控制连接器 -- 连接数据库
</code></pre>
<h2 id="2数据库服务配置管理">2)数据库服务配置管理</h2>
<pre><code class="language-sh">方式一:采用默认方式加载配置文件
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf

方式二:采用自定义方式加载配置文件
mv /etc/my.cnf /data/oldboy.conf   
mysqld --defaults-file=/data/oldboy.conf &amp;
</code></pre>
<h3 id="如何规范编写文件信息">如何规范编写文件信息</h3>
<pre><code class="language-bash">1.合理设置标签信息
客户端标签:
用于定义客户端功能-- 简化客户端命令参数应用
服务端标签:
用户定义服务端功能

2.合理设置配置项信息
客户端标签下配置项信息符合规范要求:
mysql --help 执行后,输出的配置信息可以在配置文件中编写,没输出的不能编写
服务端标签下配置项信息符合规范要求:
mysqld --help --verbose 执行后,输出的配置信息可以在配置文件中编写,没输出的不能编写

客户端标签下的内容修改后,无需重启服务即可生效
服务端标签下的内容修改后,需要重启服务才能生效❗️
/etc/init.d/mysqld restart
</code></pre>
<h2 id="3数据库服务实例管理">3)数据库服务实例管理</h2>
<pre><code class="language-bash">什么是数据库服务实例:一个服务程序运行,产生相应进程和线程信息,进程或线程占用内存/CPU/磁盘资源情况,就称为实例
数据库服务在单一系统运行会有多实例(多个不同数据库进程,分别占用系统硬件资源)

多实例应用的目的
1.充分利用系统硬件资源
2.可以拆分/隔离数据库应用                www-实例01 -- 1G                bbs-实例02 -- 1G                game-实例03 --1G
3.可以便于做业务监控                       CPU 内存 磁盘IO 数据变化 ...
</code></pre>
<h3 id="单一系统创建多实例如何实现多实例部署">单一系统创建多实例,如何实现多实例部署</h3>
<pre><code class="language-bash">1.多个实例数据库是统一版本环境
2.多个实例数据库是不同版本环境
</code></pre>
<h4 id="步骤一下载不同版本数据库程序包">步骤一:下载不同版本数据库程序包</h4>
<pre><code class="language-bash">mysql-8.0.36
mysql-5.6.48
mysql-5.7.28
将下载好的程序包放入数据库主机中(目录是/usr/local/)
</code></pre>
<h4 id="步骤二解压并安装程序包">步骤二:解压并安装程序包</h4>
<pre><code class="language-bash">mysql-8.0.36——已创建
tar xf mysql-5.6.48-linux-glibc2.12-x86_64.tar.gz
tar xf mysql-5.7.28-linux-glibc2.12-x86_64.tar.xz
ln -s mysql-8.0.36——已创建
ln -s mysql-5.6.48-linux-glibc2.12-x86_64 mysql56
ln -s mysql-5.7.28-linux-glibc2.12-x86_64 mysql57
</code></pre>
<h4 id="步骤三为每个实例分别创建数据存储目录并做初始化操作">步骤三:为每个实例分别创建数据存储目录并做初始化操作</h4>
<pre><code class="language-bash">mysql-80:        /data/3306/datamkdir -p /data/3306/data &amp;&amp; chown -R mysql.mysql /data/3306/data
mysql-57:        /data/3357/datamkdir -p /data/3357/data &amp;&amp; chown -R mysql.mysql /data/3357/data
mysql-56:        /data/3356/datamkdir -p /data/3356/data &amp;&amp; chown -R mysql.mysql /data/3356/data


rm -f /etc/my.cnf


mysqld --initialize-insecure --user=mysql --datadir=/data/3306/data --basedir=/usr/local/mysql(省略,已创建的话)
/usr/local/mysql57/bin/mysqld --initialize-insecure --user=mysql --datadir=/data/3357/data --basedir=/usr/local/mysql57
/usr/local/mysql56/scripts/mysql_install_db--user=mysql --datadir=/data/3356/data --basedir=/usr/local/mysql56
</code></pre>
<h4 id="步骤四编写不同实例配置文件信息">步骤四:编写不同实例配置文件信息</h4>
<pre><code class="language-sh">cat &gt;/data/3306/my80.cnf&lt;&lt;EOF

port=3306
user=mysql
datadir=/data/3306/data
basedir=/usr/local/mysql
socket=/tmp/mysql80.sock
EOF


cat &gt;/data/3357/my57.cnf&lt;&lt;EOF

port=3357
user=mysql
datadir=/data/3357/data
basedir=/usr/local/mysql57
socket=/tmp/mysql57.sock
EOF


cat &gt;/data/3356/my56.cnf&lt;&lt;EOF

port=3356
user=mysql
datadir=/data/3356/data
basedir=/usr/local/mysql56
socket=/tmp/mysql56.sock
EOF
</code></pre>
<h4 id="步骤五运行启动不同数据库实例程序">步骤五:运行启动不同数据库实例程序</h4>
<pre><code class="language-bash">mysqld --defaults-file=/data/3306/my80.cnf &amp;


/usr/local/mysql/bin/mysqld --defaults-file=/data/3306/my80.cnf &amp;
/usr/local/mysql57/bin/mysqld --defaults-file=/data/3357/my57.cnf &amp;
/usr/local/mysql56/bin/mysqld --defaults-file=/data/3356/my56.cnf &amp;


/usr/local/mysql/bin/mysqld_safe --defaults-file=/data/3306/my80.cnf &amp;
/usr/local/mysql57/bin/mysqld_safe --defaults-file=/data/3306/my80.cnf &amp;
/usr/local/mysql56/bin/mysqld_safe --defaults-file=/data/3306/my80.cnf &amp;


mysql -S /tmp/mysql80.sock        www数据库
mysql -S /tmp/mysql57.sock        bbs数据库
mysql -S /tmp/mysql56.sock        blog数据库
</code></pre>
<h1 id="2数据库服务基础应用操作">2.数据库服务基础应用操作</h1>
<h2 id="1数据库语句分类">1)数据库语句分类</h2>
<pre><code class="language-bash">数据库语句分类介绍:


1.DDL (Data Definition Language)                数据定义语句
对数据库和数据表进行管理的语句                create,alter,drop,show
2.DML (Data Manipulation Language)        数据操作语句
对数据表中具体数据进行管理数据                insert,update,delete,select
3.DCL (Data Control Language)                        数据操控语句
对数据库服务安全有功能做的设置                grant,revoke,create user,alter,user,commit,rollback
4.DQL (Data Query Language)                        数据查询语句
对数据库中数据查询的语句信息               select show
</code></pre>
<h2 id="2数据库语句应用实现">2)数据库语句应用实现</h2>
<h3 id="ddl语句应用方法">①DDL语句应用方法</h3>
<h4 id="1数据库ddl操作语句">1.数据库DDL操作语句</h4>
<pre><code class="language-sh">1.create————创建数据库####################################################################################
        create database 库名;
        create schema 库名;
        create database oldboy charset utf8 collate utf8_general_mysql500_ci;


2.show————查看数据库######################################################################################
1).确认数据库是否创建的方法
show databases;
show databases like 'oldboy';                #        查看oldboy数据库
show databases like 'old%';                        #        查看以old开头的数据库
2).查看数据库创建的方法(会显示SQL语句)
show create databases 库名;


3.alter————修改数据库(修改数据库字符集或字符校对规则)(了解即可)###############################################
alter database 库名 CHARACTER SET 字符集名称 COLLATE 校对规则信息;


4.drop————删除数据库######################################################################################
drop database 库名;                #       释放存储资源❗️(谨慎使用)


对于数据库的操作注意事项:
创建的数据库信息最好符合业务需要
删除数据库时需要做操作审核,需要在业务不繁忙时操作
</code></pre>
<h4 id="2数据表ddl操作语句">2.数据表DDL操作语句</h4>
<pre><code class="language-sh">1.create————创建数据表语句#################################################################################
格式:
create table 表名 (
        字段名01 数据类型(必须定义) 约束属性设置(可选),
        字段名02 数据类型(必须定义) 约束属性设置(可选),
        字段名03 数据类型(必须定义) 约束属性设置(可选),
) 引擎设置 字符集设置 字符校对规则设置 (忽略);

例子:
CREATE TABLE `student` (
`id` int NOT NULL,
`name` char(10) NOT NULL,   
`gender` enum('男','女','未知') DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci


#        如何获取sql语句的创建表❗️❗️❗️
        mysql进入数据库
        use 数据库;
        show tables;                #        展示所有表,选择想要查看的表
        show create table 表;
即可获得sql语句的创建表格式


数据类型:保证数据录入合理性,保证有效使用磁盘空间
约束设置:保证数据快速检索,保证单列数据录入合理性
        有四种特殊约束:
                PK(primary key):        主键约束/主键索引,保证单列数据录入必须非空且唯一
                UK(unique key):                唯一约束/唯一索引,保证单列数据录入必须唯一
                NN(not null):                非空约束,保证单列数据录入必须非空
                FK(foreign key):        外键约束,保证多个数据表数据增删改查操作逻辑顺序
属性设置:进一步保证录入数据的合理性
                default                                自动信息填充功能,避免空字段填充空值,影响数据查询效率
                auto_increment                实现主键列数值信息自增功能
                comment                                实现库/表/字段注释信息设置
                unsigned                        控制数值类型必须是正数,不能非负
               

2.show————数据表查看##################################################################################
查看确认库中是否存在指定数据表
show tables;
show tables like 'user';
show tables like 'old%';

查看数据表创建的语句信息(可以帮助数据库做数据迁移和数据修复)
show create table student;

可以获取指定表的字段结构——获取表结构
desc student;

例子:
mysql&gt; show databases;                #        展示所有数据库
+--------------------+
| Database         |
+--------------------+
| information_schema |
| mysql            |
| oldboy             |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.06 sec)

mysql&gt; use oldboy;                        #        使用oldboy数据库
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql&gt; show tables;                        #        展示所有数据表
+------------------+
| Tables_in_oldboy |
+------------------+
| student          |
| ti               |
+------------------+
2 rows in set (0.05 sec)

mysql&gt; desc students;                #        获取student的表结构
ERROR 1146 (42S02): Table 'oldboy.students' doesn't exist
mysql&gt; desc student;
+-------+----------+------+-----+---------+-------+
| Field | Type   | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| id    | int      | NO   | PRI | NULL    |       |
| name| char(10) | NO   |   | NULL    |       |
+-------+----------+------+-----+---------+-------+
2 rows in set (0.05 sec)


3.alter————数据表做修改##################################################################################
数据表字符集校对规则
ALTER TABLE `oldgirl`.`student` CHARACTER SET = gbk , COLLATE = gbk_chinese_ci ;

数据表名称修改
alter table student rename student_new;
rename table student_new to student;

数据表结构修改
添加新的字段
ALTER TABLE student ADD COLUMN age TINYINT UNSIGNED NOT NULL AFTER `gender`;
ALTER TABLE student ADD COLUMN telnum char(11) NOT NULL first,ADD UNIQUE INDEX `telnum_UNIQUE` (`telnum` ASC) VISIBLE;

删除原有字段
ALTER TABLE student DROP COLUMN `telnum`,DROP INDEX `telnum_UNIQUE`;
ALTER TABLE student DROP COLUMN `age`;

数据表字段名称 或 类型 或 约束属性修改
ALTER TABLE student CHANGE COLUMN `gender` `ssex` CHAR(2)NOT NULL DEFAULT '未知' ;
ALTER TABLE student CHANGE COLUMN `gender` CHAR(2)NOT NULL DEFAULT '未知' ;


4.drop————数据表删除操作##################################################################################
drop table student;
</code></pre>
<h3 id="dml语句应用方法">②DML语句应用方法</h3>
<pre><code class="language-sh">1.insert————插入数据信息##################################################################################
格式:insert into 表名 (字段名01,字段名02,......) values (值01,值02,......);

标准写法:insert into oldboy.student (id,name,gender) values (01,'xiaoA','男');

简化写法1:insert into oldboy.student (name) values ('xiaoA');
#        当字段允许为空时,可以省略不写

简化写法2:insert into oldboy.student values (03,'xiaoC','女');
#        如果记得对应字段,就不用写了,直接写数值也可以

批量录入;
insert into oldgirl.student values
(04,'xiaoD','男'),
(05,'xiaoE','女'),
(06,'xiaoF','男');


2.update————修改数据信息##################################################################################
格式:update oldboy.student set 字段01=新值01,字段01=新值02,...... where 修改数据行条件信息;

例子:
update oldboy.student set name='xiaoAA',gender='男' where id=2;


3.delete————删除数据信息##################################################################################
删除指定数据信息
格式:delete from oldboy.student where 删除数据行条件信息;

例子:delete from oldboy.student where gender='男';

清理数据表中所有数据
delete from oldboy.student;
#        数据表数据量少,可以采用此方式清理数据
truncate table oldboy.student;
#        数据表数据量多,可以采用此方式清理数据

注意:如果在软件中不可以执行,就去命令行中执行,软件会有操作保护,不允许删除
</code></pre>
<h1 id="今日小结">今日小结</h1>
<pre><code class="language-sh">数据库服务基础管理知识
        数据库连接管理(连接方式-本地/远程        连接方法-命令/工具/程序)
        数据库配置管理(加载配置文件-默认/自定义        编写配置文件规范-标签,必须要有服务端标签,而且标签下的配置项要满足规则条件)
        数据库实例管理(单一系统中构建数据库多实例        相同版本/不同版本)
       
数据库服务应用管理方法
        数据库SQL语句类型(DDL DML DCL DQL)        熟练掌握MySQL数据库DDL/DML/DCL/DQL语句应用
        数据库SQL语句应用 -- DDL (库表操作语句 create alter show drop)
        数据库SQL语句应用 -- DML(数据信息操作 insert update delete)
</code></pre>
<h1 id="其他">其他</h1>
<pre><code class="language-bash">1.命令后面加一个&amp;,意思是放到后台继续运行
2.select version();                        查看数据库当前运行版本
</code></pre>
<h2 id="获取sql语句的方式">获取sql语句的方式</h2>
<pre><code class="language-sh">填写完内容后,点击apply应用,就会生成对应的sql语句
</code></pre><br><br>
来源:https://www.cnblogs.com/jindongyan666/p/19648082
頁: [1]
查看完整版本: 数据库服务基础管理操作