MySQL是一个真正的多线程,多用户的SQL数据库服务,凭借其高性能,高可靠和易于使用的特性,成为服务器领域中最受欢迎的开源数据库系统。

 

一.mysql的编译安装

  为了避免发生端口冲突,程序冲突等现象,建议先查询mysql软件的安装情况,确认没有以rpm     方式安装的mysql-server,mysql软件包,否则建议将其卸载。

    rpm  –q mysql-server mysql

    rpm –ivh ncurses-devel-5.7-3.20090208.e16_64.rpm  //安装光盘自带的ncurses-devel包

    mysql 5.5需要cmake编译安装,所以先安装cmake包

    tar zxfcmake-2.8.6.tar.gz

    cd cmake-2.8.6

    ./configure&& gmake && gmake install

  创建运行用户

    groupadd mysql

    useradd –M –s/sbin/nologin mysql –g mysql

  解包

    tar zxfmysql-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_CHATSETS=all  && make  && make  install

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

    –DCMAKE_INSTALL_PREFIX:指定将mysql安装到某目录下

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

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

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

    -DWITH_EXTRA_CHATSETS:指定额外支持的其他字符集编码

二.安装后的其他调整

    1.对数据库目录进行权限设置

      chown–R mysql:mysql /usr/local/mysql

    2.建立配置文件

     cp/usr/src/mysql-5.5.22/support-files/my-medium.cnf   /etc/my.cnf

    3.初始化数据库

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

     执行如下命令:

      /usr/local/mysql/scripts/mysql_insatll_db   --user=mysql --basedir=/usr/local/mysql

- -datadir=/usr/local/mysql/data

    4.设置变量环境

      echo“PATH=$PATH:/usr/local/mysql/bin” >>  /etc/profile

      . /etc/profile

三.添加系统服务

     cp/usr/src/mysql-5.5.22/support-files/mysql.server  /etc/init.d/mysqld

     chmod+x /etc/init.d/mysqld

     chkconfig  --add mysqld

     servicemysqld start

     netstat–anpt |grep mysqld   //端口号3306(可以在/etc/my.cnf中[mysql]配置段的“port=3306”修改端口)

 

四.登陆到mysql服务器

     mysqladmin  –u root password 123456     //更改数据库密码为123456

     mysql  -u root -p    //使用-p进行密码效验

 

五.执行mysql操作语句

    1.查看数据库服务器的日志文件信息

      SHOWMASTER LOGS;

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

      SHOWDATABASES;

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

      USE  test;   //切换到test库中

     SHOW  TABLES;

   4.查看表的结构

     DESCRIBEuser;

   5.创建新的库

    CREATEDATABASE  auth;

   6.创建新的表

    CREATE TABLE 表名(字段1名称类型,字段2 类型,……,PRIMARY KEY (主键名));

 

    CREATE TABLE users (user_name CHAR(16) NOT NULL,  user_passwd CHAR(48)  DEFAULT     ‘’, PRIMARY KEY (user_name));  //创建一个users表 “用户名”为不超过16个字节的字

    符串,不能为空,后面密码段类似。

    7.删除一个数据表

    DROP TABLE auth.users;

   8.删除一个数据库

    DROP TABLE auth

   9.向表中插入数据记录

    INSERT INTO 表名(字段1,字段2……,) VALUES(字段1的值,….);

    INSERT INTO users(user_name,user_passwd)  VALUES(‘zhangsan’,              PASSWORD(‘123456’));

    10.查询数据记录

    SELECT 字段名1,字段名2…….., FROM 表名 WHERE 条件表达式

    Select * from auth.users   //查看auth库中users表的所有记录

    SELECT user_name,user_passwd FROM auth.users whereuser_name=’zhangsan’;        //  查询users表中用户名为zhangsan的记录

   11.修改数据记录

    UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] WHERE 条件表达式

    UPDATE auth.users SET user_passwd=PASSWORD(‘’) WHEREuser_name=’lisi’;//吧users

    表中lisi的密码改为空

   12.删除数据记录

    DELETE FROM 表名 WHERE 条件表达式

    DELETE FROM auth.users WHERE user_name=’lisi’        //删除lisi的记录

   13.授予权限

    GRANT     权限列表 ON 库名.表名 TO 用户名@来源地址 [TDENTIFIED BY ‘密码’]

      a.权限列表:用于列出授权使用的各种数据库操作。

     b.库名.表名:用于指定授权操作的库和表的名称。

     c.用户名@来源地址:用于指定用户名和允许访问的客户机地址

    d TDENTIFIED BY:用于 设置用户连接数据库是所使用的密码字符串。

    GRANT select ONauth.* TO  ‘carey’@’localhost’ TDENTIFIEDBY ‘123456’;

    14.查看权限

    SHOW  GRANTS FOR 用户名@来源地址

    SHOW GRANTS FOR ‘carey’@‘localhost’;

   15.撤销权限

    REVOKE  权限列表  ON  数据库名.表名 FROM 用户名@来源地址

    REVOKE  all ON auth.*FROM ‘carey’@‘localhost‘;

   16.备份数据库

    A.导出指定库中的部分表。

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

        mysqldump –u root  -pmysql user > mysql-user.sql

    B.mysqldump [ 选项] - –databases [库名1]  [库名2].。。。。> /备份路径/备份文件名

        mysqldump –u root  -p--databases auth >auth.sql

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

    D.mysqldump –u root –p  --opt –all-databases> all-databases.sql

    17.恢复数据库

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

        mysql –u root -p  test < mysql-user.sql