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

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
简介:
      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。通过使用RDS,您可以获得稳定、可靠和安全的企业级数据库服务,可以更加专注于发展核心业务,无需过多担心数据库的管理和维护。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
6月前
|
存储 Linux 开发工具
Linux环境下使用Buildroot配置软件包
使用Buildroot可以大大简化嵌入式Linux系统的开发和维护工作,但它需要对Linux系统和交叉编译有深入的理解。通过上述步骤,可以有效地配置和定制软件包,为特定的嵌入式应用构建高效、稳定的系统。
718 11
|
7月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】Oracle数据库配置助手:DBCA
Oracle数据库配置助手(DBCA)是用于创建和配置Oracle数据库的工具,支持图形界面和静默执行模式。本文介绍了使用DBCA在Linux环境下创建数据库的完整步骤,包括选择数据库操作类型、配置存储与网络选项、设置管理密码等,并提供了界面截图与视频讲解,帮助用户快速掌握数据库创建流程。
600 93
|
7月前
|
Ubuntu 安全 关系型数据库
安装与配置MySQL 8 on Ubuntu,包括权限授予、数据库备份及远程连接指南
以上步骤提供了在Ubuntu上从头开始设置、配置、授权、备份及恢复一个基础但完整的MySQL环境所需知识点。
778 7
|
7月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
1255 5
|
8月前
|
Ubuntu Linux 网络安全
Linux服务器之Ubuntu的安装与配置
Ubuntu Desktop是目前最成功、最流行的图形界面的Linux发行版;而Ubuntu Server也在服务器端市场占据了较大的份额。今天为大家详细介绍了Ubuntu Server的安装与配置,希望对你能有所帮助。关于VMware、VirtualBox等虚拟化软件的使用,朱哥还会在后续的文章中为大家详细介绍,敬请关注!
|
9月前
|
Kubernetes Linux 网络安全
Rocky Linux 8.9配置Kubernetes集群详解,适用于CentOS环境
初始化成功后,记录下显示的 `kubeadm join`命令。
590 0
|
9月前
|
SQL XML Java
配置Spring框架以连接SQL Server数据库
最后,需要集成Spring配置到应用中,这通常在 `main`方法或者Spring Boot的应用配置类中通过加载XML配置或使用注解来实现。
681 0
|
10月前
|
关系型数据库 MySQL 数据库连接
Django数据库配置避坑指南:从初始化到生产环境的实战优化
本文介绍了Django数据库配置与初始化实战,涵盖MySQL等主流数据库的配置方法及常见问题处理。内容包括数据库连接设置、驱动安装、配置检查、数据表生成、初始数据导入导出,并提供真实项目部署场景的操作步骤与示例代码,适用于开发、测试及生产环境搭建。
457 1
|
10月前
|
安全 Java 数据库
Jasypt加密数据库配置信息
本文介绍了使用 Jasypt 对配置文件中的公网数据库认证信息进行加密的方法,以提升系统安全性。主要内容包括:1. 背景介绍;2. 前期准备,如依赖导入及版本选择;3. 生成密钥并实现加解密测试;4. 在配置文件中应用加密后的密码,并通过测试接口验证解密结果。确保密码安全的同时,保障系统的正常运行。
696 3
Jasypt加密数据库配置信息
|
10月前
|
Linux 网络安全 开发工具
在Linux下配置gitee与Github的远程仓库
注意,git push后,是输入你的账号与密码。这个步骤可以通过特殊设置省去,但是一开始还是不要太省。
507 0