MySQL数据库概念

 (1) MySQL是关系型数据库,各种关系依赖。特点:数据以表格的形式存储,由无数的表,组成一个库,每张表包含无数的行和列,每行记录数据的真实内容,每列记录数据内容的真实数据段


(2)关系型数据库,用于存放用户信息、员工姓名、银行卡信息、工资单、WEB网站订单、购物车信息、考试成绩等;


(3) MySQL数据库不是单独存在的,位置在web后端,用户通过web网站交互,产生的数据,存储到MySQL中,典型架构LAMP  LNMP  tomcat +MySQL   Java+MySQL


(4) MySQL 分为社区版和商业版 ,MySQL社区版是免费的,Mariadb是免费开源的,Centos7默认安装的是Mariadb


MySQL数据库原理

(1) MySQL 数据库在运行时,会选择工作引擎,常见的工作引擎有Myisam, Innodb


(2) Myisam 强调的是数据库的性能,其执行速度比Innodb类型更快,但不提供事物支持,不提供外键。如果是大量的查询工作,Myissam性能更好些


(3)Innondb提供事物支持,外部键,行级锁等高级功能 ,如果是执行插入,更新操作,出于性能方面的考虑,选择Innondb。


MySQL数据库安装配置

  1> 软件安装的2种方式,二进制方式,源代码方式

  2> rpm包结尾的二进制文件,rpm,yum直接安装     

             rpm -ivh  mysql-server-xxx.rpm  mysql-devel-xxx.rpm xxx;(不推荐)

              yum  install  mysql  mysql-server  mysql-devel -y

  3>源码安装方式,基于./configure   make   make install  但从MySQL5.5X开始后,MySQL预编译变成了cmkae,不再支持.configure

 

  4> 实战源码安装MySQL

   (1) 安装编译环境 

       yum  install  ncurses-devel perl gcc gcc-c++ wget cmake nurses  make

   (2) 下载MySQL源码包 wget http://down1.chinaunix.net/distfiles/mysql-5.5.20.tar.gz

   (3) tar -xzvf  mysql-5.5.20.tar.gz

   (4) 进入mysql -5.5.20目录里,执行    

cmake  .  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ \

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \

-DMYSQL_DATADIR=/data/mysql/ \

-DSYSCONFDIR=/etc \

-DMYSQL_USER=mysql \

-DMYSQL_TCP_PORT=3306 \

-DWITH_XTRADB_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_PARTITION_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_READLINE=1 \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_EXTRA_CHARSETS=1 \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DEXTRA_CHARSETS=all \

-DWITH_BIG_TABLES=1 \

-DWITH_DEBUG=0

make

make install

 (5) 将MySQL设置为系统服务

   cd  /usr/local/mysql

   cp support-files /my-large.cnf  /etc/my.cnf

   cp  mysql.server  /etc/init.d/mysqld

   useradd mysql

   mkdir -p /data/mysql

/usr/local/mysql/scripts/mysql_install_db --user=mysql--datadir=/data/mysql/ --basedir=/usr/local/mysql/    对mysql进行初始化


(6) 启动MySQL数据库

 /etc/init.d/mysqld start

   MySQL报错解决方案:

    1> 检查MySQL数据库是否存在或者数据目录是否完整

    2> 检查selinux是否关闭,生产环境建议关闭

    3> 检查MySQL服务器的磁盘空间,查看MySQL错误日志信息

    4> 检查MySQL数据mysql用户是否有权限

    5> 检查MySQL是否已经启动 ps  -ef | grep  mysql,3306已经存在

    6> 检查MySQL配置目录是否存在/etc/my.cnf

    7> 确保my.cnf文件中,[mysqld]字段上存在datadir=/data/mysql

 

(7) 进入数据库

  /usr/local/mysql/bin/mysql


SQL语句学习


(1) show databases;    查看所有的数据库


(2) create database jfedu;   创建jfedu数据库


(3) use jfedu;  进入jfedu数据库


(4) show tables;   查看数据库中的表


(5) create table t1(id vchar(10),name vchar(20));   创建t1这个表,这个表上有id和name2个字段


(6) insert into t1 values (20,'zhangsan');  向t1这张表中插入数据


(7)

        seletct * from t1;   查看t1这张表的内容;

        select name from t1;  查看t1这张表name字段内容

        select name from t1 where id=2;   查看t1这张表id=2的name字段


(8)  desc user;  查看表的字段


(9) select host,user,password from mysql.user; 不进入user这张表中,也可以user表内容


(10) mysql -e "select host,user,password from mysql.user"; 在mysql命令行外也可以查看user表内容


(11) update test001 set age=26 and where name='wanger'and id=2;
  注释:

             更新test001这张表 把name=‘wanger’id=2 这个字段上,age设置为26


(12) select count(*)from test001;   查看表有多少字段


(13)  flush privileges;  刷新权限


(14) delete from t1  清空表的内容


(15) drop table t1;  删除表


(16) drop database jfedu; 删除数据库


(17) show engines;  查看数据库默认的引擎