Mysql数据库系统
Mysql编译安装
从官方站点http://www.mysql.com下载mysql5.x系列版本。这里以mysql-5.1.55.tar.gz为列
1准备工作
为避免端口冲突、程序冲突等现象,建议先查询mysql软件的安装情况,确认没有RPM安装的mysql-server mysql 软件包,否则建议将其卸载
Rpm �Cq mysql-server mysql
2源码编译及安装
创建运行用户
Useradd -M -u 49 -s /sbin/nologin mysql
解包
Tar zxf mysql-5.1.55.tar.gz -C /usr/src/
Cd /usr/src/mysql-5.1.55/
配置
./configure --prefix=/usr/local/mysql --with-charset=utf8 --with-collation=utf8_general_ci �Cwith- extra-charsets=gkb,gb2312
l--prefix :指定将mysql数据库安装到那个目录 ,如/usr/local/mysql
l--with-charset :指定默认使用的字符集编码,英语小队规则相对应,如utf8
l--with-collation : 指定默认使用的字符集校对规则,utf_general_ci是适用于UTF-8字符集的通用规则
l--with-enable-charset : 指定额外支持的其他字符集编码,如gbk,gb2312
Vi include/config.h
#define HAVE_CHARSET_gbk 1
#DEFINE HAVE_CHARSET_gb2312
编译并安装
Make && make install
3安装后的其他调整
建立配置文件
Cp support-files/my-medium.cnf /etc/my.cnf
4添加系统服务
Cd /usr/src/mysql-5.1.55/
Cp /support-files/mysql.server /etc/rc.d/init.d/mysqld
Chmod a+x /etc/rc.d/init.d/mysqld
Chkconfig --add mysqld
可以通过service工具或直接执行/etc/init.d/mysqld脚本来控制mysql数据库服务
/etc/init.d/mysqld start
/etc/init.d/mysqld status
Netstatt -anpt | grep mysqld
访问mysql数据库
1登陆到mysql服务器
Mysql �Cu root //-u 用于指定认证用户
如登陆其他 mysql服务器,则需使用-h来指定目标主机地址 -p来进行密码校验
Mysql �Ch 192.168.4.21 �Cu admin �Cp
2执行mysql操作语句
Mysql �Cu root 或 mysql
使用mysql数据库
查看数据库结构
1查看当前服务器中有哪些库
>Show databases;
2查看当前使用的库中有哪些表
>Use 库名;
>Show tables;
3查看表的结构
Describe 语句:用于显示表的结构,即组成表的各自段(列)的信息.需要指定”库名.表名”作为参数;若只指定表名作为参数则需通过”use”语句切换到目标库
>Describe 库名.表名;
创建及删除库和表
1创建新库:create database语句:用于创建新的库,需指定数据库名称作为参数.
>Create database 库名;
创建新表:create table 语句:用于在当前库中创建新的表,需要指定数据表名作为参数,并定义该表格所用的各字段.
>Create table 表名 (字段1名称类型,字段2名称类型,….,PRIMARY KEY(主键名));
列:>use auth;
>create table users (user_namechar(16) no null,user_password char(48) default ‘’,PRIMARY KEY (user_name));
删除数据表:drop table语句:用于删除库中的表,需要指定”库名.表名”作为参数;若只指定表名作为参数,则需通过”use”语句切换到目标库
>Drop table auth.表名;
或>use auth;
>drop table users;
删除一个数据库:dop database语句:用于删除指定的库,需要指定库名作为参数
>Drop database 库名;
管理表中的数据记录
1插入数据记录
Insert into 语句:用于向表中插入新的数据记录。格式:
>Insert into 表名(字段1, 字段2 ….) values (字段1 的值,字段2 的值…)
在插入新的数据记录时,如果这条记录完整包括表中所有字段的值,则插入语句中指定字段的部分可以省略
列: insert into users values(‘lisi’,password’’123456’’);
2查询数据记录
Select 语句:用于从指定的表中查找符合条件的数据记录。Mysql支持标准的sql语句
格式:>Select 字段名1 ,字段名2 ,…….from 表名 wher 条件表达式
表示所有字段时使用通配符“*”,若要列出所有的数据记录则可以省略where条件语句
列:select * from 库名.表名;
3修改数据记录
Update语句:用于修改、更新表中的数据记录。
格式:Update 表名 set 字段名1 =字段值1[,字段2 =字段值2] wher 条件表达式
列:> update mysql.user setpassword=password(’123456’) wher uaer=’root’;
或者 #mysqladmin �Cu root �Cp password ‘123456’ //若在linux命令行环境中执行,可以使用mysqladmin工具来设置密码
4删除数据记录
Delete语句:用于删除表中指定的数据记录。
格式:Delete from wher 条件表达式
列:delete from 库名.表名 where user_name=’lisi’;
>编译Delete from mysql.user where user=’’; //列出user字段为空的用户记录,使用delete进行空用户记录的删除
维护mysql数据库
数据库的用户授权
1授予权限
Grant 语句:专门用来设置数据库用户的访问权限。当指定用户不存在时,grant语句将会创建新的用户,否则grant语句用于修改用户的信息。
格式:Grant 权限列表 ON 库名.表名 TO 用户名 @来源地址 [ IDENTIFIED BY ‘密码’]
列:grant select ON auth.* TO ‘xiaoqi’@’localhost’ IDENTIFIED BY ‘123456’ ; //添加“xiaoqi”用户,允许其从本机访问,对auth库中的所有表具有查询权限
列:grant all ON bdqn.* TO ‘dbuser’@’192.168.4.9’ IDENTIFIED BY ‘pwd123’;
>flush privileges; //刷新用户授权信息
>mysql �Cu xiaoqi -p
>select * from auth.users; //验证授权访问操作
>select * from mysql.user; //验证非授权访问操作
2查看权限
Show grants 语句:专门用来查看数据库用户的授权信息,通过for子句可指定查看的用户对象(必须与授权时使用的用户名称一致)。
格式:Show grants for 用户名@ 来源地址
列:show grants for ‘dbuser’@‘192.168.4.19’ //查看dbuser用户从主机192.168.4.19访问数据库的授权信息
3撤销权限
Revoke语句:用于撤销指定用户的数据库权限,撤销权限后的用户仍然可以连接到mysql服务器,但将被禁止执行对应的数据库操作。
格式:Revoke 权限列表 on 数据库. 表名 from 用户名@来源地址
列:Revoke all on auth.* from ‘xiaoqi’@’localhost’; //撤销用户xiaoqi从本机访问数据库auth的所有权限
>show grants for ‘xiaoqi’@’localhost’; //确认已撤销对auth库的权限
数据库的备份与恢复
1备份数据库
1)导出指定库中的部分表
Mysqldump [选项] 库名 [表名1] [表名2] ….> /备份路径/备份文件名
2)导出一个或多个完整的库
Mysqldump [选项] --databases 库名1 [库名2] … > /备份路径/备份文件名
3)备份mysql服务器中所有库
Mysqldump [选项] �Cal-databases > /备份路径/备份文件名
列:mysqldump -u Root �Cp mysqluser > mysql-user.sql //将mysql库中的user表导出为mysql-user.Sql文件
mysqldump -u Root �Cp �C-databases >mysql-user.sql //将真个auth库导出auth .sql文件所有操作均以root用户的身份进行验证
mysqldump -u Root �Cp �Call-databases > mysql-user.sql //当导出的数据量较大时,使用― - opt选项以优化速度将创建备份文件all-data.sql, 其中包括mysql服务器中的所有库
2恢复数据库
使用mysqldump命令导出的sql备份脚本,在需要恢复时可以可以通过mysql命令进行导入操作
格式:Mysql [选项] [库名] [表名] < /备份路径/备份文件名