MySQL5.5(cmake)简介、安装、应用、帐户受权、还原、备份、还原

MySQL安装及应用java

MySQL简介:mysql

早期由Mysql AB公司维护和开发,后由SUN公司收购,而SUN公司又被Oracle公司收购!c++

MySQL编译安装程序员

1.准备工做:sql

(1)为了不端口冲突、程序冲突等现象,建议查询并卸载Mysql安装状况,确认没有rpm方式无安装后,以编译来安装。shell

image

(2)挂载光盘安装ncurses-devel包。数据库

image

(3)MySQL 5.5须要cmake编译安装,因此先安装cmake包。安全

image

若出现下图错误,则安装gcc软件包(yum -y install gcc*),缺乏gcc,c++编译环境。服务器

image

2.源码编译及安装网络

解包并安装Mysql。

image

上述配置命令中,各选项含义以下:

-DCMAKE_INSTALL_PREFIX:指定将myqsl数据库程序安装到某目录下。

-DSYSCONFDIR:指定初始化参数文件目录。

-DDEFAULT_CHARSET:指定默认使用的字符集编码,如utf8。

-DDEFAULT_COLLATION:指定默认使用的字符集校对规则,utf8_general_ci是适用于utf-8的通用规则。

-DWITH_EXTRA-CHARSETS:指定额外支持的其它字符集编码。

3.安装后的其余调整

(1)建立程序用户:为了增强数据库服务的权限控制,建议使用专门的运行用户,如mysql,此用户不须要登录,也不须要创建宿主目录。

image

(2)创建配置文件

在Mysql源码目录中的support-files文件夹下,提供了适合不一样负载数据库的样本配置文件,若不肯定应用规模,通常选择my-medium.cnf便可,该文件知足大多数企业的中等应用需求。

输入“y”,覆盖原有文件。

image

(3)初始化数据库

为了可以正常使用Mysql数据库系统,应以运行用户mysql的身份执行初始化脚本mysql_install_db,指定数据存放目录等。

提示OK,表示成功

image

(4)设置环境变量

为了在任何目录下使用MySQL命令,须要在/etc/profile设置环境变量。

可使用echo $PATH 命令验证效果

image

4.添加系统服务

若但愿添加mysql为系统服务,以便经过chkconfig进行管理,能够直接使用源码包中提供的服务脚本。找到suppor-files文件夹下的mysql.server脚本文件,复制到/etc/rc.d/init.d/mysql,更名为mysql,并设置执行权限

image

访问MySQL数据库

1. 登陆到Mysql服务器

通过安装后的初始化过程,MySQL数据库的默认管理员帐号为root,密码为空。若要以未设置密码的root用户登陆本机的MySQL数据库,能够执行如下操做:

固然,若是登陆的是其余的MySQL服务器,则须要使用“-h”选项来指定目标主机地址;在有密码的状况下,还应使用“-p”选项来进行密码校验。例如,若要链接到MySQL服务器173.16.16.5,并以用户adm411进行有密码的验证,能够执行如下操做。

image

2. 执行MySQL操做语句

验证成功后将会进入到提示符为“mysql>”的数据库操做环境,用户能够输入各类操做语句对数据库进行管路。每一条MySQL操做语句能够分号“;”表示结束,输入时不区分大小写,但习惯上将MySQL语句中的关键字部分使用大写。

例如:以root用户登陆到“mysql>”环境后,执行“show master logs;”语句能够查看到当前数据库服务的日志文件信息。

image

3. 退出“mysql>”操做环境

在“mysql>”操做环境中,执行“exit”或“quit”能够退出mysql命令工具,返回到原来的shell环境。

image

查看数据库结构

1. 查看当前服务器中有哪些库

show database 语句:用于列出当前MySQL服务器中包含的库。经初始化后的MySQL服务器,默认创建了三个库:test、mysql和information_schema(其中mysql包含了用户认证相关的表),执行如下操做能够进行查看。

image

2. 查看当前使用的库中有哪些表

show tables 语句:用于列出当前所在的库中包含的表。在操做以前,须要先使用use语句切换到所使用的库。

image

MySQL数据库的数据文件默认存放在/usr/local/mysql/var目录下,每一个数据库对应一个子目录,用于存储数据表文件。每个数据表对应为三个文件,后缀名分别为“.from”、“.MYD”和“.MYI”。

3. 查看表的结构

describe语句:用于显示表的结构,即组成表的各字段(列)的信息。须要指定“库名.表名”做为参数;若只指定表名参数,则需先经过“use”语句切换到目标库(PS:也可使用desc)。

image

 

建立及删除库和表

1. 建立新的表

create database语句:用于建立一个新的库,需指定数据库名称做为参数。

image

刚建立的数据库是空的,其中不包含任何表,在/usr/local/mysql/var/目录下会自动生成一个与新建的库名相同的空文件夹。

2. 建立新的表

create table 语句:用于在当前库中建立新的表,需指定数据表名称做为参数,并定义该表格所使用的名字段。基本格式以下所示:

create table 表名 (字段1名称类型, 字段2名称 类型, ……, primary key (主键名))

考虑到字符集兼容性,最好不要使用中文字段名。

image

 

3. 删除一个数据表

drop table语句:用于删除库中的表,须要指定“库名.表名”做为参数;若只指定表名参数,则需先经过“use”语句切换到目标库。

image

4. 删除一个数据库

drop database语句:用户删除指定的库,须要指定库名做为参数。

image

管理表中的数据记录

1. 插入数据记录

insert into 表名(字段1, 字段2, ……) values(字段1的值,字段2的值, ……)

image

在插入新的数据记录时,若是这条记录完整包括表中全部字段的值,则插入语句中指定字段的部分能够省略。

image

为用户设置密码时,若是使用“password”,那么查看到的用户密码则是加密的;若是不使用“password”,那么查看到的用户密码则是明文的。

image

2. 查询数据记录

select语句:用于从指定的表中查找符合条件的数据记录。MySQL数据库支持标准的SQL查询语句,语句格式以下所示:

select 字段名1,字段名2,…… from 表名 where 条件表达式

表示全部字段时可使用通配符“*”,若要列出全部的数据记录则能够省略where条件子句。

image

当须要根据特定的条件查询记录时,where条件字句则是必不可少的。

image

3. 修改数据记录

update语句:用于修改,更新表中的数据记录。语句格式以下所示:

update 表名 set 字段名1=字段值1 [,字段名2=字段值2] where 条件表达式

image

在MySQL数据库服务器中,用于访问数据库的各类用户(如root)信息都保存在mysql库的user表中,熟练的管理员能够直接修改其中的数据记录。例如:如下操做能够将数据库用户root的密码设为“123456”,当再次使用“mysql–u root –p”访问MySQL数据库服务器时,必须使用此密码进行验证。

image

如果在Linux命令行环境中执行,还可使用mysqladmin工具来设置密码。

image

4. 删除数据记录

delete语句:用于删除表中指定的数据记录。语句格式以下所示:

delete from 表名 where 条件表达式

image

在MySQL数据库服务器中,默认添加了从本机访问数据库的空用户(user、password均为空)。基于数据库安全性考虑,应该删除这些空用户。

image

image

数据库的用户受权

MySQL数据库的root用户帐号拥有对全部库、表的所有权限,频繁使用root帐号会给数据库服务器带来必定的安全风险。实际工做中,一般会创建一些低权限的用户,只负责一部分库、表的管理和维护操做,甚至能够对查询、修改、删除记录等各类操做作进一步的细化限制,从而将数据库的风险降至最低。

1. 授予权限

grant语句:专门用来设置数据库用户的访问权限。当指定的用户名不存在时,grant语句将会建立新的用户,不然grant语句用于修改用户的信息。语句格式以下:

grant 权限列表 on 库名.表名 to 用户名@来源地址 [ identified by ‘密码’]

使用grant语句时,须要注意的事项以下

权限列表:用于列出受权使用的各类数据库操做,以逗号进行分隔。例如:“select、insert、update”。使用“all”表示全部权限,可受权执行任何操做。

库名.表名:用于指定受权操做的库和表的名称,其中可使用通配符“*”。

用户名@来源地址:用于指定用户名称和容许访问的客户机地址,即谁能链接,谁从哪里链接。来源地址能够是域名、IP地址,还可使用“%”通配符,表示某个区域或网段内的全部地址。

identified by用于设置用户链接数据库时所使用的密码字符串。在新建用户时,若省略“identified by”部分,则用户的密码将为空。

image

image

在企业服务器的应用中,数据库与网站服务器有时候是相互独立的。所以在MySQL服务器中,应根据实际状况建立新的用户受权,容许受权用户从网站服务器访问数据库。一般的作法是,建立一个或几个网站专用的库,并授予全部的权限,限制访问的来源IP地址。

image

2. 查看权限

show grants语句:专门用来查看数据库用户的受权信息,经过for字句可指定查看的用户对象(必须与受权时使用的对象名称一致)。语句格式以下所示:

show grants for 用户名@来源地址

image

其中usage权限对应的受权记录中包含了用户的链接密码字串。

3. 撤销权限

revoke语句:用于撤销指定用户的数据库权限,撤销权限后的用户仍然能够链接到MySQL服务器,但将被禁止执行对应的数据库操做。语句格式所示:

revoke 权限列表 on 数据库名.表名 from 用户名@来源地址

image

掌握了上述各类MySQL管理命令的使用,已经能够知足大多数网络管理员(非专职数据库管理员)的工做须要。若但愿了解更多关于MySQL语句的知识,能够参阅MySQL 5.1的在线参考手册,其地址位于http://dev.mysql.com/doc/refman/5.1/zh

数据库的备份与恢复

及时备份数据库是信息安全管理的重要工做内容之一。MySQL数据库的备份能够采用多种方式,例如直接打包数据库文件夹/var/local/mysql/var/,或者使用专用的导出工具。

1. 备份数据库

经过mysqldump命令能够将指定的库、表或所有的库导出为SQL脚本,便于该命令在不一样版本的MySQL服务器上使用。例如,当须要升级MySQL服务器时,能够先用mysqldump命令将原有库信息导出,而后直接在升级后的MySQL服务器中导入便可。

1) 执行导出操做

使用mysqldump命令导出数据时,默认会直接在终端显示,若要保存到文件,还须要结合shell的“>”重定向输出操做。命令格式以下所示:

格式1:导出指定库中的部分表

mysqldump [选项] 库名 [表名1] [表名2] …… > /备份路径/备份文件名

格式2:导出一个或多个完整的库(包括其中全部的表)

mysqldump [选项]- -databases 库名1 [库名2] …… > /备份路径/备份文件名

格式3:备份MySQL服务器中全部的库

mysqldump [选项] - -all-databases >/备份路径/备份文件名

其中,经常使用的选项包括“-u”、“-p”,分别用于指定数据库用户名、密码。例如,如下操做分别使用格式一、格式2,将mysql库中的user表导出为mysql-user.sql文件,将整个auth库导出为auth.sql文件,全部操做均已root用户的身份进行验证。

image

若须要备份整个MySQL服务器中的全部库,应使用格式3。当导出的数据量较大时,能够添加“- -opt”选项以优化执行速度。例如:如下操做将建立备份文件all-data.sql,其中包括MySQL服务器中的全部库。

image

2) 查看备份文件内容

经过mysqldump工具导出的SQL脚本是文本文件,其中“/*……*/”部分或以“- -”开头的行表示注释信息。使用grep、less、cat等文本工具能够查看脚本内容。

image

2. 恢复数据库

使用mysqldump命令导出的SQL备份脚本,在须要恢复时能够经过mysql命令对其进行导入操做。命令格式以下所示:

mysql[选项] [库名] [表名] </备份路径/备份文件名

当备份文件中只包含表的备份,而不包括建立库的语句时,则执行导入操做时必须指定库名,且目标库必须存在。例如:如下操做能够从备份文件mysql-user.sql中将表导入到test库。

image

image

若备份文件中已经包括完整的库信息,则执行导入操做时无需指定库名。例如:如下操做能够从备份文件all-data.sql恢复其中的全部库。

本文转自:程序员鼓励师

相关文章
相关标签/搜索