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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:
      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 ,如需转载请自行联系原作者




相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
348
分享
相关文章
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
在Ubuntu 22.04上配置和安装MySQL
以上就是在Ubuntu 22.04上配置和安装MySQL的步骤。这个过程可能看起来有点复杂,但只要按照步骤一步步来,你会发现其实并不难。记住,任何时候都不要急于求成,耐心是解决问题的关键。
59 30
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
92 28
CentOS 7系统下详细安装MySQL 5.7的步骤:包括密码配置、字符集配置、远程连接配置
以上就是在CentOS 7系统下安装MySQL 5.7的详细步骤。希望这个指南能帮助你顺利完成安装。
205 26
查看Linux、Apache、MySQL、PHP版本的技巧
以上就是查看Linux、Apache、MySQL、PHP版本信息的方法。希望这些信息能帮助你更好地理解和使用你的LAMP技术栈。
61 17
Oracle linux 8 二进制安装 MySQL 8.4企业版
Oracle linux 8 二进制安装 MySQL 8.4企业版
29 1
MySQL 8.4 配置SSL组复制(八个步骤)
MySQL 8.4 配置SSL组复制(八个步骤)
41 0
seatunnel配置mysql2hive
本文介绍了SeaTunnel的安装与使用教程,涵盖从安装、配置到数据同步的全过程。主要内容包括: 1. **SeaTunnel安装**:详细描述了下载、解压及配置连接器等步骤。 2. **模拟数据到Hive (fake2hive)**:通过编辑测试脚本,将模拟数据写入Hive表。 3. **MySQL到控制台 (mysql2console)**:创建配置文件并执行命令,将MySQL数据输出到控制台。 4. **MySQL到Hive (mysql2hive)**:创建Hive表,配置并启动同步任务,支持单表和多表同步。
179 15
Linux下mysql数据库的导入与导出以及查看端口
本文详细介绍了在Linux下如何导入和导出MySQL数据库,以及查看MySQL运行端口的方法。通过这些操作,用户可以轻松进行数据库的备份与恢复,以及确认MySQL服务的运行状态和端口。掌握这些技能,对于日常数据库管理和维护非常重要。
212 8
docker拉取MySQL后数据库连接失败解决方案
通过以上方法,可以解决Docker中拉取MySQL镜像后数据库连接失败的常见问题。关键步骤包括确保容器正确启动、配置正确的环境变量、合理设置网络和权限,以及检查主机防火墙设置等。通过逐步排查,可以快速定位并解决连接问题,确保MySQL服务的正常使用。
366 82
下一篇
oss创建bucket