Day1-mysql

  1. 搭建数据库服务器
  2. 数据库的基本使用
  3. 表的基本操作
  4. 表记录的基本操作
  5. 用户授权与权限撤销
  6. 数据备份与恢复
  7. Mysql主从同步
  8. Mysql读写分离
  9. Mysql高可用集群
  10. Mysql性能调优

       

Mysql数据库服务器    存储的数据

       

1搭建数据库服务器

    商业软件    开源软件    是否跨平台

在生产环境中通宵和网站服务一起使用        LAMP    LNMP

Mysql历史与优点

关系型数据库    非关系型数据NOSQL    

把不同的数据,使用不同表存储,表与表之间是有关联的

支持多个编程语言    php    .net    java    asp    api    mysql    

       

DB——database    数据库

数据库:依照某种数据模型进行组织并存放到存储器的数据集合

       

DBMS——database    management    system

数据库管理系统:用来操纵和管理数据库的大型服务软件

       

DBS——database    system

数据库系统:即DB+DBMS,指带有数据库并整合了数据库管理软件的计算机系统

       

实体—关系模型    entity-relationship model

       

安装rpm格式软件包

使用RPM包安装初始密码在  

cat /root/.mysql_secret

mysql>SET PASSWORD FOR 'root'@'localhost'=PASSWORD('1234567');

       

安装 源码包    配置    编译    安装

[root@localhost ~]# yum install mysql-server mysql –y

       

[root@localhost ~]# /etc/init.d/mysqld start

初始化 MySQL 数据库: Installing MySQL system tables...

OK

Filling help tables...

OK

       

To start mysqld at boot time you have to copy

support-files/mysql.server to the right place for your system

       

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !

To do so, start the server, then issue the following commands:

       

/usr/bin/mysqladmin -u root password 'new-password'

/usr/bin/mysqladmin -u root -h localhost.localdomain password 'new-password'

       

Alternatively you can run:

/usr/bin/mysql_secure_installation

       

which will also give you the option of removing the test

databases and anonymous user created by default. This is

strongly recommended for production servers.

       

See the manual for more instructions.

       

You can start the MySQL daemon with:

cd /usr ; /usr/bin/mysqld_safe &

       

You can test the MySQL daemon with mysql-test-run.pl

cd /usr/mysql-test ; perl mysql-test-run.pl

       

Please report any problems with the /usr/bin/mysqlbug script!

       

[确定]

正在启动 mysqld: [确定]

       

端口号

[root@localhost ~]# netstat -untlap |grep :3306

tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 11671/mysqld

       

mysql    pid号

[root@localhost ~]# ps aux |grep mysqld

root 11582 0.0 0.5 106092 1352 pts/0 S 11:51 0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysql

mysql 11671 0.0 9.1 367516 20868 pts/0 Sl 11:51 0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock

root 11739 0.0 0.3 103248 832 pts/0 S+ 12:07 0:00 grep mysqld

[root@localhost ~]# cat /var/run/mysqld/mysqld.pid

11671

       

进程所有者/组    都 是mysql

数据库目录    /var/lib/mysql/

主配置文件    /etc/my.cnf

       

Mysql-share        共享库

Mysql-shared-compat        兼容包

Mysql-server        服务端程序

Mysql-client        客户端程序

Mysql-devel        库和头文件

Mysql-embedded    嵌入式版本

Mysql-test        测试包

       

Sql命令不区分字母大小写

每条SQL命令必须以;结尾

c    不执行SQL命令

       

设置登录用户和密码

mysql> set password for root@'localhost'=password('1');

       

存放在数据库服务上库和表,是以文件的形式保存在数据库目录下

[root@localhost ~]# mysql -uroot -p1 mysql

       

mysql> show databases;            查询数据库

mysql> select database();        查看当前所在的库

mysql> use mysql;            切换数据库(打开数据库)

mysql> create database 数据库名;    创建数据库

mysql> create drop 数据库名;        删除数据库

mysql> desc    表名;        查看表结构

mysql> select     字段    from    表名;    查询表记录

       

数据库的命名规则

数字、字母、下划线    ————注——但不能使用纯数字命名

数据库名具有唯一性

区分字母大小写

尽量不要使用特殊符号    和    关键字

       

information_schema        //信息概要库(虚拟库) 此里的数据;不占有系统磁盘空间  数据存储在系统内存里

                保存当前数据库服务器已有库和表的信息

mysql         授权库  保存用户的授权信息  占有系统磁盘空间

performation_schema   性能结构库  数据服务器运行时的参数信息  占有系统磁盘空间

test        公共库(空库-测试库)  任意一个能够连接数据库服务器用户,就对此库拥有完全权限  占有系统磁盘空间

       

表的基本操作----表存放在数据库里

mysql> create table 数据库名.表名(

-> 字段名    类型(宽度)    约束条件,

-> 字段名    类型(宽度)    约束条件,

……

);

       

>insert    into    表名    values("字段内容", "字段内容", "…");

>delete    from    表名;     删除表里所有记录

>drop    table    表名;    删除表

>drop    database    数据库;     删除数据库

       

Mysql数据库类型

1数值类型

整数类型

类 型        大小        范围(有符号)    范围(无符号)    说明

TINYINT    1字节        -128~127        0-255            微小整数

SMALLINT    2字节        -32768~32767    0-65535        小整数

MEDIUMINT    3字节        -223~223-1        0~224-1        中整数

INT        4字节        -231~231-1        0~232-1        大整数

BIGINT    8字节        -263~263-1        0~264-1        极大整数

     

无符号    unsigned

>create    table    t1(name    varchare(5),age    int(4)    zerofill);    补0

注:数值类型的宽度是显示宽度,当字段的值不够显示宽度时,默认使用空格在数字前,补足显示宽度位数显示

    Int默认为11位,若不指定——浪费内存空间

     

浮点型

FLOAT        4字节        单精度浮点数

DOUBLE    8字节        双精度浮点数

       

2字符类型

Char    定长(固定长度)        默认为1(0-255)

Varchar    变长(长度可定义)    (255-65535)

Text、blob    大文本类型

       

3日期时间类型

Year        年    yyyy    2016

Date        日期    yyyy-mm-dd    2016-09-01

Time        时间    hh:mm:ss    22:00:00

     

Mysql    获取时间的函数

    Now()    year() day() month() time()

Select now()

Select year(20160901)

Select year( now() )

     

Mysql数据类型

日期时间类型

Datetime        8字节        范围:1000-01-01    00:00:00.000000~9999-12-31    23:59:59.999999

timestamp         4字节        范围:1970-01-01    00:00:00.000000~2038-01-19    03:14:07.999999

1存储时间范围不一样、赋值方式不一样     若不给timestampe赋值,默认是当前系统时间

Year 年    yyyy

输入两位数显示         01-69        20xx

                70-99        19xx    

                00        0000

   

4枚举类型    字段的值只能在列举的范围内选择

Enum(值1,"值2",值n)选择列举范围内一个         可以用编号给他赋值

set(值1,"值2",值n)选择列举范围内一个或多个

原文地址:https://www.cnblogs.com/fina/p/5830436.html