设为首页 收藏本站
查看: 963|回复: 0

[经验分享] MySQL数据库系统

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-12-9 08:54:15 | 显示全部楼层 |阅读模式
                      MySQL数据库系统
  具体步骤:
  1. 准备工作
  为了避免发生端口冲突、程序冲突等现象,建议先查询MySQL软件的安装情况,确认没有使用RPM方式安装的mysql-server、mysql软件包,否则建议将其卸载。
   wKiom1ZmrHHxKjH-AAAL0O5PVX8763.jpg
  2. 源码编译及安装
  1) 创建运行用户
  为了加强数据库服务的权限控制,建议使用专门的运行用户,如mysql。此用户不需要直接登录到系统,可以不创建宿主文件夹。
   wKiom1ZmrHGS_PpeAAAIfPt5CMo869.jpg
  2) 解包
  将下载的mysql源码包解压,释放到/usr/src/目录下,并切换到展开后的源码目录。
   wKioL1ZmrOKAc9mOAAAP3vf8VbE097.jpg
   wKiom1ZmrHKih6IQAAAImnCiTzM760.jpg
  3) 配置
  在内容丰富、结构庞大的企业网站平台中,可能会用到多种字符集的网页,相应数据库系统也应该支持不同的字符集编码。在配置过程中,可以将默认使用的字符集设置为utf8,并添加对gbk、gb2312等其他字符集的支持。
   wKiom1ZmrHPxLXPcAAAM35KTPAM690.jpg
  在配置过程之前,系统可能会提醒你设置一下系统日期,否则不能进行配置工作。
   wKiom1ZmrHOQS72YAAAJZuTSisU386.jpg
  在mysql 5.1.55版本的源码包中,对于通过- -with-extra-charset配置选项后添加的其他字符集编码,还需要对其进行一下小调整,才能在编译后获得完整的支持。如修改include子文件下的config.h文件,添加相应字符集的编译定义即可:
   wKioL1ZmrOPBUg8NAAAG-GF4c9o616.jpg
   wKiom1ZmrHTxqqH9AAAF5I399F8973.jpg
  4) 编译并安装
  编译报错时,可能是缺少一个ncurses-devel包,安装之后再配置一次即可。
   wKioL1ZmrOTz80OkAAAHqtXR0qo947.jpg
   wKiom1ZmrHWg5S68AAAH6Kr_AWs831.jpg
  3. 安装后的其他调整
  1) 建立配置文件
  在MySQL源码目录中的support-files文件夹下,提供了适合不同负载数据库的样本配置文件。如果不确定数据库系统的应用规模,一般选择my-medium.cnf文件即可,该文件能够满足大多数企业的中等应用需求。
   wKiom1ZmrHWS7KRGAAAJjbEuUWk931.jpg
  2) 初始化数据库
  为了能够正常使用MySQL数据库系统,应以运行用户mysql的身份执行初始化任务,以便建立用户授权库、表,以及test测试库等。初始化脚本mysql_install_db位于安装目录下的bin文件夹中。此外,还应调整用于存放数据库内容的文件夹属性,以便mysql用户有权限对其进行读写操作。
   wKiom1ZmrHbwsA0HAAAJYxDsdmM671.jpg wKioL1ZmrOawX437AAAKxfkATCY833.jpg
  3) 优化执行路径、程序库路径
  为MySQL系统的各种执行程序添加符号链接,以方便其使用。另外,建议MySQL的库文件、头文件也添加符号链接,便于在安装其他的用到这些文件的软件包时能自动搜索。
   wKioL1ZmrOaRaRTxAAAOrc_snsg827.jpg
  4. 添加系统服务
  若希望添加mysqld系统服务,以便通过chkconfig进行管理,可以直接使用源码包中提供的服务脚本。找到support-files文件夹下的mysql.server脚本文件,将其复制到/etc/init.d/目录下,并改名mysqld,然后再设置执行权限,通过chkconfig命令将其添加为mysqld系统服务。
   wKioL1ZmrOehgDc1AAAQwj6mfYs408.jpg wKiom1ZmrHjSJe5BAAAUSJMZCXg276.jpg
  n 访问MySQL数据库
  1. 登录到Mysql服务器
  经过安装后的初始化过程,MySQL数据库的默认管理员账号为root,密码为空。若要以未设置密码的root用户登录本机的MySQL数据库,可以执行以下操作:
   wKiom1ZmrHjwggGkAAAHHnbE_Q0694.jpg
  当然,如果登录的是其他的MySQL服务器,则需要使用“-h”选项来指定目标主机地址;在有密码的情况下,还应使用“-p”选项来进行密码校验。例如,若要连接到MySQL服务器173.16.16.5,并以用户adm411进行有密码的验证,可以执行以下操作。
   wKiom1ZmrHmBegyXAAAJKRPVLBU702.jpg
  2. 执行MySQL操作语句
  验证成功后将会进入到提示符为“mysql>”的数据库操作环境,用户可以输入各种操作语句对数据库进行管路。每一条MySQL操作语句可以分号“;”表示结束,输入时不区分大小写,但习惯上将MySQL语句中的关键字部分使用大写。
  例如:以root用户登录到“mysql>”环境后,执行“show master logs;”语句可以查看到当前数据库服务的日志文件信息。
   wKiom1ZmrHqhZxZyAAAqKEYoPng883.jpg
  3. 退出“mysql>”操作环境
  在“mysql>”操作环境中,执行“exit”或“quit”可以退出mysql命令工具,返回到原来的shell环境。
   wKioL1ZmrOrxYnnuAAAHF7hkXyI735.jpg
  n 查看数据库结构
  1. 查看当前服务器中有哪些库
  show database 语句:用于列出当前MySQL服务器中包含的库。经初始化后的MySQL服务器,默认建立了三个库:test、mysql和information_schema(其中mysql包含了用户认证相关的表),执行以下操作可以进行查看。 wKiom1ZmrHvyB4lRAAAM8WuSFP0626.jpg
  2. 查看当前使用的库中有哪些表
  show tables 语句:用于列出当前所在的库中包含的表。在操作之前,需要先使用use语句切换到所使用的库。
   wKiom1ZmrHujF5r-AAAW5gQ-PTk039.jpg
  MySQL数据库的数据文件默认存放在/usr/local/mysql/var目录下,每个数据库对应一个子目录,用于存储数据表文件。每一个数据表对应为三个文件,后缀名分别为“.from”、“.MYD”和“.MYI”。
  3. 查看表的结构
  describe语句:用于显示表的结构,即组成表的各字段(列)的信息。需要指定“库名.表名”作为参数;若只指定表名参数,则需先通过“use”语句切换到目标库。
   wKiom1ZmrHyjB5GQAAAfnK11vvM393.jpg
  n 创建及删除库和表
  1. 创建新的表
  create database语句:用于创建一个新的库,需指定数据库名称作为参数。
   wKiom1ZmrH3BCfE2AAAH3ENVhTc611.jpg
  刚创建的数据库是空的,其中不包含任何表,在/usr/local/mysql/var/目录下会自动生成一个与新建的库名相同的空文件夹。
  2. 创建新的表
  create table 语句:用于在当前库中创建新的表,需指定数据表名称作为参数,并定义该表格所使用的名字段。基本格式如下所示:
  create table 表名 (字段1名称类型, 字段2名称 类型, ……, primary key (主键名) )
  考虑到字符集兼容性,最好不要使用中文字段名。
   wKioL1ZmrO2ylM3HAAANbCGpPWI560.jpg
  3. 删除一个数据表
  drop table语句:用于删除库中的表,需要指定“库名.表名”作为参数;若只指定表名参数,则需先通过“use”语句切换到目标库。
   wKioL1ZmrO6yUazlAAAH71_bspw028.jpg
  4. 删除一个数据库
  drop database语句:用户删除指定的库,需要指定库名作为参数。
   wKiom1ZmrH6j_cPyAAAH8Ebpwv0060.jpg
  n 管理表中的数据记录
  1. 插入数据记录
  insert into 表名(字段1, 字段2, ……) values(字段1的值,字段2的值, ……)
   wKiom1ZmrH6zeO6sAAANXerOH3k351.jpg
  在插入新的数据记录时,如果这条记录完整包括表中所有字段的值,则插入语句中指定字段的部分可以省略。
   wKiom1ZmrH_gIPprAAAMhtGXWzs885.jpg
  为用户设置密码时,如果使用“password”,那么查看到的用户密码则是加密的;如果不使用“password”,那么查看到的用户密码则是明文的。
   wKioL1ZmrPCyr86ZAAAZvgfR4GY221.jpg
  2. 查询数据记录
  select语句:用于从指定的表中查找符合条件的数据记录。MySQL数据库支持标准的SQL查询语句,语句格式如下所示:
  select 字段名1,字段名2,…… from 表名 where 条件表达式
  表示所有字段时可以使用通配符“*”,若要列出所有的数据记录则可以省略where条件子句。
   wKioL1ZmrPDg6m6NAAASpwSNsJg746.jpg
  当需要根据特定的条件查询记录时,where条件字句则是必不可少的。
   wKioL1ZmrPHARO0AAAAOukkawPM011.jpg
  3. 修改数据记录
  update语句:用于修改,更新表中的数据记录。语句格式如下所示:
  update 表名 set 字段名1=字段值1 [,字段名2=字段值2] where 条件表达式
   wKioL1ZmrPKSbAMPAAAdfTFX9Vc668.jpg
  在MySQL数据库服务器中,用于访问数据库的各种用户(如root)信息都保存在mysql库的user表中,熟练的管理员可以直接修改其中的数据记录。例如:以下操作可以将数据库用户root的密码设为“123456”,当再次使用“mysql –u root –p”访问MySQL数据库服务器时,必须使用此密码进行验证。
   wKioL1ZmrPLBHdICAAAPtXdzyGI418.jpg
  若是在Linux命令行环境中执行,还可以使用mysqladmin工具来设置密码。
   wKioL1ZmrPORGYJ0AAAIOmCVz-0387.jpg
  4. 删除数据记录
  delete语句:用于删除表中指定的数据记录。语句格式如下所示:
  delete from 表名 where 条件表达式
   wKiom1ZmrIOQ-ZWUAAAXDVIbyJs827.jpg
  在MySQL数据库服务器中,默认添加了从本机访问数据库的空用户(user、password均为空)。基于数据库安全性考虑,应该删除这些空用户。
   wKiom1ZmrISjQHj5AAAHbOEYiPQ797.jpg wKiom1ZmrITgmXOqAAAV3JSo8OY782.jpg
  n 数据库的用户授权
  MySQL数据库的root用户账号拥有对所有库、表的全部权限,频繁使用root账号会给数据库服务器带来一定的安全风险。实际工作中,通常会建立一些低权限的用户,只负责一部分库、表的管理和维护操作,甚至可以对查询、修改、删除记录等各种操作做进一步的细化限制,从而将数据库的风险降至最低。
  1. 授予权限
  grant语句:专门用来设置数据库用户的访问权限。当指定的用户名不存在时,grant语句将会创建新的用户,否则grant语句用于修改用户的信息。语句格式如下:
  grant 权限列表 on 库名.表名 to 用户名@来源地址 [ identified by ‘密码’]
  使用grant语句时,需要注意的事项如下
  ? 权限列表:用于列出授权使用的各种数据库操作,以逗号进行分隔。例如:“select、insert、update”。使用“all”表示所有权限,可授权执行任何操作。
  ? 库名.表名:用于指定授权操作的库和表的名称,其中可以使用通配符“*”。
  ? 用户名@来源地址:用于指定用户名称和允许访问的客户机地址,即谁能连接,谁从哪里连接。来源地址可以是域名、IP地址,还可以使用“%”通配符,表示某个区域或网段内的所有地址。
  ? identified by用于设置用户连接数据库时所使用的密码字符串。在新建用户时,若省略“identified by”部分,则用户的密码将为空。
   wKioL1ZmrPXSrFzjAAAKL-aE8zs110.jpg wKioL1ZmrPbC39hBAAA3UTqJFLI554.jpg
  在企业服务器的应用中,数据库与网站服务器有时候是相互独立的。因此在MySQL服务器中,应根据实际情况创建新的用户授权,允许授权用户从网站服务器访问数据库。通常的做法是,创建一个或几个网站专用的库,并授予所有的权限,限制访问的来源IP地址。
   wKioL1ZmrPeBbCpNAAAOeCYZ3H8485.jpg
  2. 查看权限
  show grants语句:专门用来查看数据库用户的授权信息,通过for字句可指定查看的用户对象(必须与授权时使用的对象名称一致)。语句格式如下所示:
  show grants for 用户名@来源地址
   wKiom1ZmrIeC3umYAAAgpr6_lfY373.jpg
  其中usage权限对应的授权记录中包含了用户的连接密码字串。
  3. 撤销权限
  revoke语句:用于撤销指定用户的数据库权限,撤销权限后的用户仍然可以连接到MySQL服务器,但将被禁止执行对应的数据库操作。语句格式所示:
  revoke 权限列表 on 数据库名.表名 from 用户名@来源地址
   wKiom1ZmrIiBgKDFAAAgIKQAZns569.jpg
  掌握了上述各种MySQL管理命令的使用,已经可以满足大多数网络管理员(非专职数据库管理员)的工作需要。若希望了解更多关于MySQL语句的知识,可以参阅MySQL 5.1的在线参考手册,其地址位于http://dev.mysql.com/doc/refman/5.1/zh
  n 数据库的备份与恢复
  及时备份数据库是信息安全管理的重要工作内容之一。MySQL数据库的备份可以采用多种方式,例如直接打包数据库文件夹/var/local/mysql/var/,或者使用专用的导出工具。
  1. 备份数据库
  通过mysqldump命令可以将指定的库、表或全部的库导出为SQL脚本,便于该命令在不同版本的MySQL服务器上使用。例如,当需要升级MySQL服务器时,可以先用mysqldump命令将原有库信息导出,然后直接在升级后的MySQL服务器中导入即可。
  1) 执行导出操作
  使用mysqldump命令导出数据时,默认会直接在终端显示,若要保存到文件,还需要结合shell的“>”重定向输出操作。命令格式如下所示:
  格式1:导出指定库中的部分表
  mysqladmin [选项] 库名 [表名1] [表名2] …… > /备份路径/备份文件名
  格式2:导出一个或多个完整的库(包括其中所有的表)
  mysqladmin [选项] - -databases 库名1 [库名2] …… > /备份路径/备份文件名
  格式3:备份MySQL服务器中所有的库
  mysqladmin [选项] - -all-databases > /备份路径/备份文件名
  其中,常用的选项包括“-u”、“-p”,分别用于指定数据库用户名、密码。例如,以下操作分别使用格式1、格式2,将mysql库中的user表导出为mysql-user.sql文件,将整个auth库导出为auth.sql文件,所有操作均已root用户的身份进行验证。
   wKioL1ZmrPmSOprtAAAOL_trjVc720.jpg
  若需要备份整个MySQL服务器中的所有库,应使用格式3。当导出的数据量较大时,可以添加“- -opt”选项以优化执行速度。例如:以下操作将创建备份文件all-data.sql,其中包括MySQL服务器中的所有库。
   wKioL1ZmrPnTbGEkAAAJ6xv6PX4476.jpg
  2) 查看备份文件内容
  通过mysqldump工具导出的SQL脚本是文本文件,其中“/*……*/”部分或以“- -”开头的行表示注释信息。使用grep、less、cat等文本工具可以查看脚本内容。
   wKioL1ZmrPrxat_iAAAgR9J5bAI555.jpg
  2. 恢复数据库
  使用mysqldump命令导出的SQL备份脚本,在需要恢复时可以通过mysql命令对其进行导入操作。命令格式如下所示:
  mysql [选项] [库名] [表名] < /备份路径/备份文件名
  当备份文件中只包含表的备份,而不包括创建库的语句时,则执行导入操作时必须指定库名,且目标库必须存在。例如:以下操作可以从备份文件mysql-user.sql中将表导入到test库。
   wKioL1ZmrPrRCOp5AAAI5m_7aho035.jpg
   wKiom1ZmrIuh05BeAAAm8mhwWwY707.jpg
  若备份文件中已经包括完整的库信息,则执行导入操作时无需指定库名。例如:以下操作可以从备份文件all-data.sql恢复其中的所有库。
   wKioL1ZmrPywzBqgAAAbK-2nDEE022.jpg
                   


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-148560-1-1.html 上篇帖子: mysql安装及主从 下篇帖子: MySQL 日志之--慢查询日志(slow-query-log) 数据库系统
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表