Linux全攻略--MySQL数据库配置与管理

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:
      MySQL是一种精巧的,多用户和多线程的中小型SQL数据库系统,由一个服务器守护进程mysqld和很多不同的客户程序和库组成.现在形成了一个"Linux+Apache+PHP+MySQL"构建电子商务网站的黄金网站的黄金组合.   
     MySQL不是开放源代码的产品,但在某些情况下可以自由使用.由于它的强大功能,灵活性,丰富的应用编程接口,以及精巧的系统结构,受到了广大自由软件爱好者甚至是商业软件用户的青睐.
      MySQL的特点
     MySQL具备非常好的性能,甚至可以和目前的所有商用数据库系统相媲美,MySQL最主要的优点就是"简单,高效,稳定性高".下面是具体的特点:  
    MySQL可以运行在不同的平台上,如:WINDOWS98/NT/200/2003和RED HAT LINUX.而且在UNIX/LINUX环境下支持多线程的运行方式.
    MySQL提供对多种数据库的支持,如:Oracle,Informix,Sybase,也提供对ODBC的支持.
    MySQL可以使用多种语言,如:C,C++,JAVA,PERL,PHP等.
    MySQL提供非常完善的权限系统
一.安装和启动MySQL
     1.安装SQL
先查看安装没.
安装好的可以看到如图的安装包.
2.启动MySQL
两种启动方法.
查看运行状态
如果希望MySQL在下次系统启动时自动启动,可用下面的命令:
#ntsysv或在services菜单中将mysqld 选中.
二.MySQL实用程序简介
   MySQL安装完成之后,可以在/usr/bin路径下找到MySQL实用程序.
safe_mysqld  :一个脚本文件,用于以安全的方式启动mysqld 守护进程,其安全包括:当一个错误发生时,有能力重启服务器并且将运行时的信息记录到一个日志文件中.
mysql :一个基于命令行的MySQL客户端程序
mysql_install_db :用于以缺省权限创建MySQL权限表,该程序通常仅在系统上第一次安装MySQL时执行一次
mysqladmin :用于执行数据库的管理操作,如创建或删除数据库,加载授权表和停止MySQL服务等.也可以用于查看MySQL版本,进程和状态信息
myisamchk:用于描述,检查,优化和修复MySQL中和各个表,并可以显示表的相关信息
mysqlshow:用于显示数据库,表,列和索引等信息
mysqlaccess:一个脚本,用于检查对主机,用户和数据库组合的存取权限
mysqlbug:MySQL错误报告脚本,用于向MySQL邮件列表中添加错误报告
mysqldump:用于将MySQL数据库中的数据导出一个文本文件.
mysqlmport:提供一个到SQL语句LOAD DATA INFILE的命令行接口,通过LOAD DATA INFILE命令,可以将文本文件导入到数据库中.
make_binary_release:用于制作一个编译MySQL的二进制版本
msql2mysql:一个外壳脚本,用于转换MSQL程序到MySQL
replace:一个实用程序,由msql2mysql使用.
三.MySQL数据库的管理与维护.
1.创建数据库
   在MySQL数据库系统中,可以使用两种方法来创建数据库,即在客户端程序mysql环境下使用SQL语句CREATE DATABASE或在LINUX的SHELL环境下使用管理工具mysqladmin的子命令CREATE.
创建后查看数据库.可看到存在3个数据库.
这是使用管理工具mysqladmin创建数据库.这样两种方法都介绍了.
2.删除数据库.
同样可以利用上面两种方法实现.
这是使用SQL语句实现
这是使用工具实现.
3.创建和删除表
数据库创建之后 ,可使用如下命令来在现存的数据库中创建或删除表
在数据库sales中创建四个表.
创建完成之后查看有哪些表,然后进行删除表.
4.查看表结构.
表创建完成后,可使用如下命令来查看表的结构.
可以看到表中的数据结构.
5.向表中添加并查看数据.
添加后进行查看表中的数据.
6.维护索引
MySQL数据库表的所有列类均可创建索引,一个表最多可有16个索引,同时,MySQL可以在一个表的多个列上创建索引,一个索引可以由最多15个列组成.
 1)创建索引.
创建test表,同时使用name列的前10字符创建索引.创建后进行查看.
使用CREATE INDEX语句为现存表employee中的name列创建索引.
使用ALTER TABLE语句为现存表products中的name列创建索引.
2)删除索引
可以使用DROP INDEX或ALTER TABLE语句.
使用SHOW查看的时候,可知被删除了.
使用ALTER语句删除.
四.MySQL数据目录和日志文件
1.MySQL数据目录的位置.
   默认情况下,通过RPM包安装的MySQL数据目录为/var/lib/mysql.
查看配置文件my.cnf 的内容.
使用工具查看.
2.MySQL数据目录的结构.
    MySQL数据目录中包含了由服务器管理的所有数据库和表,它们被组织成一个树状结构,该结构是通过LINUX文件系统的层次结构用简单的方式实现.
   MySQL每个数据库都对应自己的数据库目录,这些数据库目录作为子目录存储在MySQL数据目录中,与其所代表数据库名称相同.
可看到有3个数据库目录.
数据库中的表对应数据库目录中的文件,每个表在数据库目录中都对应3个文件.一个是格式文件,一个数据文件和一个索引文件.每个文件的基本名称都与该表相同.扩展名指明该文件的类型.如下:
格式文件:.frm
数据文件:.MYD
索引文件:.MYI
通过下面的操作可以查看数据库目录中的表文件.
显示mysql数据库中目录的表文件.
3.MySQL日志文件.
    这些文件提供了关于服务器运行的重要信息,对数据库的管理和维护是非常重要的.
1)错误日志.包含了服务器写入标准错误输出设备的所有消息,同时还包含了MySQL服务的启动和关闭事件.错误日志是由实用程序safe_mysqld产生,因此在通过调用safe_mysqld启动MySQL服务时,错误日志才会存在.
    默认情况下,错误日志并不存储在MySQL数据目录中,是由于配置文件/etc/my.cnf中指定为/var/log/mysqld.log.
可看到err-log这一行指定了错误日志文件为/var/log/mysqld.log.
这是用命令#less /var/log/mysqld.log返回错误日志的内容.其中对MySQL服务的启动和关闭做了记录.
2)常规日志和更新日志.常规日志是用来记录有关MySQL服务器运行的常规信息,包括用户的连接,查询以及其它各种事件.更新日志用来记录修改数据库的查询信息.
   常规日志和更新日志默认情况下并没启用.
可根据需要启用.
添加log   log-update选项来启用更新日志.
五.MySQL数据库用户和权限
MySQL提供了一个非常实用的权限系统,用于管理和控制某个用户使用其所提供的主机名,用户名和密码能否连接到指定的数据库服务器,能否打开所需数据库和能否对热气进行读取,添加,修改和删除等操作.
1.系统数据库mysql
   MySQL内置了一个系统数据库mysql,其中包含存放着权限系统所需要的数据的授权表.当MySQL服务器启动时,会首先读取系统数据库mysql中的授权表,亲将表中相关的数据库装入内存;当用户连接数据库服务器并对数据库进行存取操作时,MySQL会根据这些表中的数据做相应的权限控制.因此,在设置用户的存取权限时,必然要对mysql数据库有关的表进行修改.
  mysql数据库中用于权限系统的授权表主要包括user,db,host,tables_priv,columns_priv.可以启用客户端程序mysql.执行show tables命令进行查看.
2.MySQL权限系统的工作原理
   MySQL权限系统保证所有的用户可以严格按照事先分配好的权限对数据库进行允许的操作.
  1)第一阶段--连接验证阶段.
用户的身份根据两个信息来确定,即从哪个主机连接和使用哪个MySQL用户.连接验证需要使用系统数据库mysql中user表的Host,User和Password 共3个范围字段.
  2)第二阶段--请求验证阶段.
这一阶段,MySQL权限系统将会检查用户所发出的每一个对于数据库的操作请求,以确定用户是否具有足够的权限来执行这一操作.
3.连接MySQL服务器
  要想使用mysql客户端程序对数据库进行管理,首先需要连接将要管理的MySQL服务器.连接时,需要指定主机名,用户名和口令.
4.MySQL的初始权限.
MySQL安装完成之后,在启动MySQL服务时,会加载授权表中的初始权限设置,这些初始权限存储在user和db表中.主要包括:
   内置一个口令为空的root用户,是超级用户.使用root用户连接服务器时,必须由本地主机(localhost)发出.
  内置一个匿名用户,该用户可对有一个名为"test"或名称以"test_"开始的数据库进行任何操作.使用匿名用户连接服务器时,也必须由本地主机发出.
  其它权限均被拒绝.
5.设置MySQL超级用户root口令.
将口令设置为crq
看最后一个是将匿名用户删除.
6.设置MySQL数据库权限示例.
1)添加新的用户权限.
使用root登录后,使用GRANT语句来添加一个可以从本地主机连接到MySQL服务器的用户crq,但连接时必须使用口令crqpass.
使用同样的方法添加一个可以从其它任何地方连接到MySQL服务器的超级用户crq,使用口令为crqpass.
2)授予用户特定的权限
使用GRANT语句添加一个可以从本地主机连接到MySQL服务器的用户yang,并且授予其针对sales数据库中enployee表的select 和insert权限.
查看数据库中的表.
退出重新连接数据库服务器.
表明当前用户yang仅针对表employee具有操作权限,用户不具有操作权限的表对于该用户来说是不可视的,不会出现在列表中.
表明当前用户对表有SELECT权限.
表明当前用户有INSERT权限.
当前用户不允许对employee表的DELETE权限.
3)撤消用户权限.如果想撤消用户权限,需要使用REVOKE语句.
然后使用>REVOKE INSERT ON sales.employee FROM  yang@localhost;
然后插入数据的时候就不行了,说明yang 针对employee表的insert权限已被撤消.
7.MySQL数据库的备份和恢复
把数据库sales备份到mysql.bak目录.然后查看备份成功.
先删除数据库sales,再创建. sales.
可看到恢复成功.
到这里全部介绍完毕.
 
 


     本文转自yangming1052 51CTO博客,原文链接:http://blog.51cto.com/ming228/112804 ,如需转载请自行联系原作者




相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
17天前
|
存储 SQL 关系型数据库
MySQL体系结构与配置
MySQL体系结构与配置
32 0
|
11天前
|
弹性计算 关系型数据库 MySQL
centos7 mysql安装及配置
本文详细介绍了在阿里云服务器ECS上通过yum源安装MySQL 8.0.12的过程,包括更新yum源、下载并安装MySQL源、解决安装过程中可能遇到的问题等步骤。此外,还介绍了如何启动MySQL服务、设置开机自启、配置登录密码、添加远程登录用户以及处理远程连接异常等问题。适合初学者参考,帮助快速搭建MySQL环境。
73 8
centos7 mysql安装及配置
|
7天前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
4天前
|
SQL 关系型数据库 分布式数据库
PolarDB Proxy配置与优化:提升数据库访问效率
【9月更文挑战第6天】PolarDB是阿里云推出的高性能分布式关系型数据库,PolarDB Proxy作为其关键组件,位于客户端与PolarDB集群间,负责SQL请求的解析与转发,并支持连接池管理、SQL过滤及路由规则等功能。本文详细介绍了PolarDB Proxy的配置方法,包括连接池、负载均衡和SQL过滤设置,并探讨了监控调优、缓存及网络优化策略,以帮助提升数据库访问效率。
13 1
|
9天前
|
Java 数据库连接 数据库
数据库以及其他项目配置
该项目配置了数据库连接和MyBatis设置,并解决了配置文件加载问题。启动类使用 `@SpringBootApplication` 注解,可通过 `@ComponentScan` 指定扫描包。Lombok 自动生成 getter/setter 等方法,简化代码。Result 实体类用于统一返回格式。用户模块包括注册与登录功能,使用 MD5 加密密码、Spring Validation 参数校验及 JWT 认证。JWT 工具类处理令牌生成与解析,并通过拦截器验证。Redis 优化登录功能,利用 ThreadLocal 存储用户信息。此外,还包括文章模块的相关功能,如文章分类管理、
27 2
|
16天前
|
关系型数据库 MySQL Linux
【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App
【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App
【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App
|
17天前
|
关系型数据库 MySQL Linux
Linux环境安装MySQL8.0.36使用rpm包安装,安装顺序是什么?
【8月更文挑战第23天】Linux环境安装MySQL8.0.36使用rpm包安装,安装顺序是什么?
83 1
|
10天前
|
SQL 关系型数据库 MySQL
MySQL----配置双主双从
本文档详细介绍了如何在四台服务器上配置MySQL的双主双从架构。首先,通过关闭防火墙和SELinux确保网络通信畅通无阻。接着,设置各服务器的主机名和本地Host,确保名称解析正确。然后,通过YUM安装MySQL并修改初始密码。接下来,逐步配置四个节点(master01、master02、slave01、slave02),包括修改配置文件、创建用户和授权等步骤,实现主从复制。最后,通过SQL命令验证主从同步是否成功。
|
12天前
|
关系型数据库 MySQL 机器人
Django入门到放弃之数据库配置
Django入门到放弃之数据库配置

热门文章

最新文章

下一篇
DDNS