MySQL数据库系统
一、理论知识点:
MySQL是一个真正的多线程、多用户的SQL数据库服务,凭借其高性能、高可靠性和易于使用的特性,成为服务器领域中最受欢迎的开源数据库系统。
特点:
多线程、多用户
基于C/S架构
简单易用、查询速度快、安全可靠
1、MySQL的编译安装
准备工作
确认没有使用rpm方式安装的,mysql-server、mysql软件包,否则将其现在
需要安装ncurses-devel包
tar xzf cmake-2.8.6.tar.gz (用cmake对mysql高版本做配置)
Cd cmake-2.8.6
./configure
Gmake && gmake install (编译及安装)
源码编译及安装
创建运行用户:
groupadd mysql (创建组)
Useradd -M -s /sbin/nologin mysql -g mysql (创建用户并加入组)
解压mysql包,并切换到源码目录:
tar xzf mysql-5.5.22.tar.gz -C /usr/src
Cd /usr/src/mysql-5.5.22
配置:
cmake-DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8-DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all
-DCMAKE_INSTALL_PREFIX:指定将mysql数据库程序安装到某个目录下
-DSYSCONFDIR:指定初始化参数文件目录
-DDEFAULT_CHARSET:指定默认使用的字符集编码
-DDEFAULT_COLLATION:指定默认使用的字符集校对规则,utf8-general-ci是适用于 utf8字符集的通用规则。
-DWITH_EXTRA_CHARSETS:指定额外支持的其他字符集编码
Make && make install 开始编译及安装
安装后的其他调整
对数据目录进行权限设置:chown -R mysql:mysql /usr/local/mysql
建立配置文件:
rm -rf /etc/my.cnf 如果原来etc文件下有my.cnf文件可以删除
Cp support-files/my-medium.cnf /etc/my.cnf (建立配置文件)
初始化数据库:
/usr/local/mysql/scripts/mysql_install_db --user=mysql
--basedir=/usr/local/mysql --datadir=/usr/localmysql/data
设置环境变量:
echo “PATH=$PATH:/usr/local/mysql/bin” >> /etc/profile
. /etc/profile 立即生效
添加系统服务:
Cp su[[ort-files/mysql.server /etc/init.d/mysqld
Chmod +x /etc/init.d/mysqld (授予执行权限)
Chkconfig --add mysql (添加为系统服务)
启动mysql,并查看运行状态
Service mysqld start
/etc/init.d/mysqld status
Netstat -anpt | grep mysql (查看监听端口)
Mysql服务器默认端口: TCP 3306
2、访问MySQL数据库
Mysql设置密码:
首次设置:mysqladmin -u root password ‘123456’
修改密码:mysqladmin -u root -p password ‘123456’
登陆到MySQL服务器:mysql -u root -p
退出MySQL服务器: exit
二、使用MySQL数据库
1、查看数据库: show databases;
查看当前mysql使用库中有哪些表:
Use mysql;(在操作之前,需要先使用use语句切换到所使用的库)
Show tables;
查看表的结构: describe user;
2、创建及删除库和表
创建新的库: create database auth; (auth为创建的库名)
创建新的表:
create table 表名 (字段1名称,字段2名称 类型, ···,primary key (主键名));
例:(先进到库中,在创建表 use auth;)
createtable user (name_user char (16) not null,user_passwd char (48) default ‘’, primary key (user_name));
删除一个表:drop table auth.user;
删除一个数据库:drop database auth;
3、管理表中的数据记录(增改删查)
插入数据库:
insert into 表名 (字段1,字段2,···) values(字段1的值, 字段2的值,···);
例:(先进到库中,在向表中差入数据 use auth;)
Insert into user (user_name,user_passwd) values (‘zhangsan’ password(‘123456’));
Password代表密码是密文
查询数据记录:
select 字段名1,字段名2,··· from 表名 where 条件表达式
例:select * from auth.user;
指定查询,若要查询张三的记录:
Select user_name,user_passwd from auth.user where user_name= ‘zhangsan’;
修改数据记录:
Update auth.user setuser_passwd=password(‘’) where user_name= ‘lisi’;
将lisi的密码字串设为空值
Select * from auth.user; 验证
删除数据记录:
delete from auth.user where user_name=‘lisi’
Select * from auth.user; 验证
三、维护MySQL数据库
1、数据库用户授权
授予权限:
grant 权限列表 on 库名 . 表名 to 用户名@来源地址 identified by ‘密码’
例:grant select on auth.* to user1@localhost identified by ‘123456’;
查看权限:show grants for 用户名@来源地址
Show grants for user1@localhost;
撤销权限:(用数据库管理员)
revoke 权限列表 on 数据库名 . 表名 from 用户名@来源地址
例:revoke select on auth。User from user1@localhost;
2、数据库的备份与恢复
备份数据库:
格式1:导出指定库中的部分表
Mysqldump [选项] 库名 [表名1] [表名2] ··· > /备份路径/备份文件名
Mysqldump -u root -p mysql user > mysql-user.sql
格式2:导出一个或多个完整的库(包括其中所有的表)
Mysqldump [选项] --database 库名1 [库名2]··· > /备份路径/备份文件名
Mysqldump -u root -p --database auth > auth.sql
格式3:备份MySQL服务器中所有的库
Mysqldump [选项] --all-database > /备份路径/备份文件名
Mysqldump -u root -p --all-databases > all-data.sql
恢复数据库:
恢复表:mysql -u root -p auth < mysql-user.sql
恢复库:mysql -u root -p < auth.sql
总结:
n MySQL是一个开源的SQL数据库软件,默然使用TCP3306端口提供服务,配置文 件是/etc/my.cnf
n MySQL的基本管理操作包括查看数据库结构,创建及删除库和表,管理表中的数 据记录
n Mysqldump工具可以将数据库导出为SQL脚本,需要恢复时再通过mysql命令执行 导入
n 使用CRANT、REVOKE指令可以对数据库用户进行授予或撤销权限的操作