> CentOS > CentOS教程 >

Centos服务器下Mysql 5.x编译安装

Mysql数据库系统
Mysql编译安装
从官方站点http://www.mysql.com下载mysql5.x系列版本。这里以mysql-5.1.55.tar.gz为列

1准备工作
为避免端口冲突、程序冲突等现象,建议先查询mysql软件的安装情况,确认没有RPM安装的mysql-server  mysql  软件包,否则建议将其卸载
Rpm –q 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 –with- 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 –u root   //-u 用于指定认证用户
如登陆其他 mysql服务器,则需使用-h来指定目标主机地址  -p来进行密码校验
Mysql –h  192.168.4.21 –u  admin –p
2执行mysql操作语句
Mysql –u 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 –u root –p 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 –u 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 [选项] –al-databases  > /备份路径/备份文件名
列:mysqldump  -u Root –p mysqluser  > mysql-user.sql  //将mysql库中的user表导出为mysql-user.Sql文件
mysqldump -u Root –p –-databases  >mysql-user.sql   //将真个auth库导出auth .sql文件所有操作均以root用户的身份进行验证
mysqldump -u Root –p –all-databases > mysql-user.sql   //当导出的数据量较大时,使用— - opt选项以优化速度将创建备份文件all-data.sql, 其中包括mysql服务器中的所有库
2恢复数据库
使用mysqldump命令导出的sql备份脚本,在需要恢复时可以可以通过mysql命令进行导入操作
格式:Mysql  [选项]  [库名]  [表名]  < /备份路径/备份文件名



(责任编辑:IT)