设为首页 收藏本站

运维网

查看: 603|回复: 0

[经验分享] MySQL入门(一)

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2018-9-27 06:56:18 | 显示全部楼层 |阅读模式
第一部分:MySQL基础概念  
Mariadb的基础:
  
    设计范式:
  
        第一范式:字段是原子性的
  
        第二范式:非主属性完全依赖于主属性
  
                存在可用主键
  
        第三范式:非主属性对主属性不存在传递函数依赖关系。
  
                任何都不应该依赖于其他表的非主属性
  
    约束:主键、唯一键、外键、检查性约束
  
    SQL组件
  
        数据库、表、索引、视图、存储过程、存储函数、触发器、事件调度器、用户和权限
  
        元数据数据库:mysql
  
    Mariadb安装方式:
  
        rpm包
  
        通用二进制
  
        编译安装
  
第二部分:SQL语句
  
    DDL,DML
  
        DDL:create,alter,drop
  
        DML:insert,delete,update,select
  
        DCL:grant,revoke,
  
    MySQL图形化管理工具
  第一部分:MySQL基础概念   
  一、基础架构
  1.数据库系统:(通用模型)   
DSC0000.jpg

  分析器:分析sql语句,命令,语法,库名,字段名,表名等
  操作求解器:操作过程应该怎样执行,可能会提供多条执行路径
  计划执行器:选择最优执行路径,
  锁管理器是事务管理器的一个基本组件
  文件存取方法    //r或w
  缓冲区管理方法  //
  磁盘空间管理器     //限定表或者库占用空间大小
  事务管理器        //
  恢复管理器        //恢复此前未执行完成的事务
  2.事务概念   
  事务(transaction):组织多个操作为一个整体,要么全部执行,要么全部都不执行
  回滚:rollback,假如未执行完成,所有的都要回滚
  Bos:8000-1000
  Alice:5000,5000+1000
  一个存储系统是否支持事务:测试标准
  ACID:
  A:原子性,不可分割的一个整体
  C:一致性,前后的总和是一致的,变化前后是一致的
  I:隔离性,事务彼此之间是隔离的,我在取钱的时候,其他人不能操作该账户
  D:持久性,事务执行成功,则保存在disk中,则不能修改
  原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)
  二、数据库范式
  数据库设计具有一定的规范性
  员工信息:
  约束:外键约束,A表依赖于B表的某个字段
  表达式约束:限定age范围为1-100
  主键:唯一的标识身份
  RDBMS: //一般满足第三范式即可,范式是递进关系
  1.第一范式1NF //列不可再分,列唯一
  每一列都是不可分割的原子数据,而不能是集合,属组等非原子数据项
  实体中有多个值时,必须拆分为不同的属性,即无重复的域
  关系模式中,每个属性不可再分。属性原子性
  职工号,姓名,电话号码组成一个表(一个人可能有多个电话号码)
  方案1:重复存储职工号和姓名。这样,关键字只能是电话号码。//不满足
  方案2:二是职工号为关键字,电话号码分为单位电话和住宅电话两个属性
  2.第二范式2NF//
  在一范式的基础上,非主属性完全依赖于主属性,即消除非主属性对主属性的部分函数依赖关系。
  sc(sid,cid,grade,credit)其中sid为学号, cid为课程号,grade为成绩,credit为学分。 由以上条件,关键字为组合关键字(sid,cid)
  sc(sid,cid,grade,credit)//非关键字属性credit仅函数依赖于cid,也就是credit部分依赖组合关键字(sid,cid)而不是完全依赖。
  必须拆分为:sc(sid,cid,grade),c(cid,credit)
  3.第三范式3NF //
  二的基础上,非主属性对主属性不存在传递函数依赖关系。
  s(sid,sname,did,dname,location) 各属性分别代表学号,姓名,所在系,系名称,系地址。
  问题:did,dname,location将重复存储
  原因:关系中存在传递依赖造成的。即sid -> did。而did ->sid却不存在,did -> location, 因此关键字sid对location函数决定是通过传递依赖did->location 实现的。也就是说,sid不直接决定非主属性location。
  方法:分为两个关系 s(sid,sname,did),d(dno,dname,location)
  注意:关系s中必须有外关键字did。否则两个关系之间失去联系。
  4.第五范式,巴斯特科范式
  http://www.cnblogs.com/hi-bazinga/archive/2012/06/05/2536806.html
  三、数据库其他概念
  数据库:数据的集合
    表:为了满足范式设计要求,将一个数据集拆分为多个  
    约束:constraint,向数据表插入要遵循的限制规则
  
        主键:一个或多个字段的组合,主键的数据必须唯一,不能重复
  
        外键:A表某字段能插入的数据依赖于B表的主键中的数据
  
        唯一键:一个或多个字段的组合,填入唯一键中的约束,必须不同于已存在的数据,可以为空
  
        检查性约束:取决于表达式的请求
  
    索引:将表中的某一个或某些字段抽取出来,单独存储为一个独特的数据结构;
  
        索引是一个数据结构:
  
        常见的索引类型:
  
            树状:
  
            hash:
  
        目的:加快查找速度,但不利于w请求
  
    关系运算:
  
        选择:选择符合条件的行
  
        投影:选择符合条件的列
  
        连接:将多张表关联起来
  
            左连接,右链接,笛卡尔积,内连接
  
    数据抽象:
  
        物理层:决定数据的存储格式,即如何将数据组织为物理文件
  
        逻辑层:描述DB存储什么数据,以及数据间存在什么关系
  
        视图层:描述DB中的部分数据;
  
    关系模型的分类:
  
        一般关系模型:
  
        实体关系模型:
  
        基于对象的关系模型:
  
        半结构化关系模型:  xml
  Mariadb(Mysql)
  Unireg:
  MySQL AB--->公司,早期是针对Unireg做的应用接口,
  卖给了Sun公司,早期是运行在Solaris:二进制版本,后来才在linux上
  Sun被oracle收购了
  My:作者的大女儿
  Maria:作者的三女儿
  mysql:www.mysql.com
  Mariadb:wwww.mariadb.org
  四、安装MariaDB
  Mariadb的特性:
  插件式存储引擎,存储管理器有多种实现版本,用户可根据需要灵活选择
  存储引擎也称为“表类型"
  1.更多的存储引擎 //show engines
  MyISAM        //5.1默认使用
  MyISAM-->Aria //
  InnoDB-->XtraDB //支持事务5.5以后
  2.诸多扩展新特性:
  3.提供了较多的测试组件
  4.truly open source;真的开源
  MySQl的发行机制
  Enterprise:提供了更丰富的功能
  Community:
  安装方式:
  1.rpm包
  1.由OS的发行商提供
  2.程序官方提供
  2.源码包
  3.通用二进制格式//解压后,简单配置即可
  通用二进制格式安装mariadb: //先卸载之前安装的版本
  1.卸载原有版本解压新版本
        systemctl stop mariadb  
        cp /usr/lib/systemd/system/mariadb.service /root  备份unit文件
  
        yum remove mariadb-server
  
        https://downloads.mariadb.org/
  
            mariadb-5.5.46-linux-x86_64.tar.gz    //文件名
  
        tar xvf mariadb-5.5.46-linux-x86_64.tar.gz -C /usr/local/
  
        cd /usr/local
  
        ln -sv mariadb-5.5.46-linux-x86_64/ mysql
  2. 属组,目录及权限,配置文件
        id mysql || group add -r -g 306 mysql //没有的话,就创建该系统用户  
        cd /usr/local/mysql/
  
        chown -R root:mysql ./*
  
        mkdir /mydata/data -pv
  
        chown -R mysql.mysql /mydata/data/
  
            注:/etc/my.cnf 是以前的包,需要删除,或者移动到其他地方
  
            /usr/local/mysql/support-files :提供有配置文件
  
        mkdir /etc/mysql
  
        cp support-files/my-large.cnf /etc/mysql/my.cnf //这个目录也会被读取配置
  
        vim /etc/mysql/my.cnf
  
            [mysqld]
  
            ...
  
            datadir = /mydata/data
  
            skip_name_resolve = ON
  
            innodb_file_per_table = ON
  
            ...
  3.初始化元数据:
        scripts/mysql_install_db --help  
        scripts/mysql_install_db  --user=mysql --datadir=/mydata/data --skip-name-resolve
  
        启动:
  
            1.cp support-files/mysql.server /etc/init.d/mysqld //使用centos6的方式
  
                chmod +x
  
                chkconfig --add mysqld
  
                service mysqld start
  
            2.vim /root/mairadb.service //使用unit文件启动
  
                unit文件修改添加
  小结:
  1.添加系统用户,修改属组
  2.创建目标目录,修改属主属组
  3.复制并修改配置文件
  4.初始化数据库(指定user,datadir,--skip-name-resolve)
  后续步骤:   
  1.添加lib
  vim /etc/ld.so.conf.d/mariadb2.conf
  /usr/local/mysql/httpd
  ldconfig -p |grep mysqld
  2.path
  vim /etc/profile.d/mysql.sh
  export PATH=$PATH:/usr/local/mysql/bin
  source /etc/profile
  3.man //在/usr/local目录下能自己找到
  4.头文件include
  ln -sv /usr/local/mysql/include/mysql/ /usr/include/
  步骤:cat INSTALL-BINARY //这个文件有具体的安装步骤
1.准备/mydata/datda  
2.useradd -r mysql
  
    cd /usr/local
  
    ln -sv mari-server mysql
  
    cd /usr/local/mysql/
  
    chown -R root:mysql ./*
  
    scripts/mysql_install_db --user=mysql --datadir=/mydata/data
  
    cp support-files/mysql.server /etc/init.d/mysqld
  
    chconfig --add mysqld
  
3.配置文件
  
    ini格式的配置文件,各程序均可通过此配置文件获取配置信息;
  
        [program_name]
  
    配置文件查找次序:mysql --help //可以看到次序
  
        1.RPM包的
  
            /etc/mysql/my.cnf-->/etc/my.cnf---> ~/.my.cnf
  
            假如冲突:越靠后,起作用
  
        2.通用二进制
  
            /etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf
  
            假如冲突:越靠后,起作用
  
    cp support-files/my-large.cnf /etc/my.cnf
  
    添加:
  
        datadir = /mydata/data
  
        innodb_file_per_table = ON
  
        skip_name_resolve = ON
  
4.启动服务
  
    service mairadb start
  注:数据库系统非常浪费内存和硬件
  原有的/etc/my.cnf会影响,需要处理
  注意:
  1. 5.x就是为了兼容MySQL5.x的,接口几乎一致,把支持开源自由软件的用户从社区版MySQL拿到MariaDB上
  2.10.x说过会大量使用新技术,接口会与mysql彻底分道扬镳了。目标就是以后想MariaDB新接口过渡。
  问题:unit文件
  1.受systemd控制
  安装后生成的文件:/usr/lib/systemd/system/dhcpd.service
  [root@MT ~]# systemctl enable dhcpd
  Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.
  2.cp mariadb55.service /usr/lib/systemd/system/
  vim /usr/lib/systemd/system/mariadb55.service
  ExecStart=/usr/local/mysql/bin/mysqld_safe --basedir=/usr/local/mysql //修改,pre和post都删除即可
  配置文件,扔为原有的
  第二部分:SQL语句
  DDL,DML
  DDL:create,alter,drop
  DML:insert,delete,update,select
  DCL:grant,revoke,
  MySQL图形化管理工具
  一、Mariadb程序的组成:
  C:client
  mysql:CLI交互式客户端程序
  mysqldump:备份
  mysqladmin:管理工具
  mysqlbinlog:查看二进制日志
  ...
  S:server
  三类套接字地址:
  IPv4,3306/tcp
  Unix Sock:/var/lib/mysql/mysql.lock ,/tmp/mysql.lock //服务启动生成,关闭删除
  本机:C===S:127.0.0.1
  mysqld
  mysqld_safe //建议运行使用的服务端程序,默认使用
  mysqld_multi:多实例;
  mysqld_upgrade:升级工具
  ...
  获取其读取次序的方法
  mysqld --verbose --help | less
  mysql --help | less
  mysql命令
  常用选项
  -u 用户名,默认为root
  -h 远程主机,默认为localhost
  -p 密码,默认为空
  -D --database=name,直接选择数据库 //在6上默认显示当前所处的库,select database();查看,use db_name 使用该库
  -e --excute=name ,直接运行该命令,并不进入交互式
  注意:mysql的用户账号由两部分组成:'usernmae'@'host';其中host用于限制此用户可通过哪些远程主机连接当前的mysql服务
  host的表示方式,支持使用通配符;
  %:任意长度的任意字符;
  172.16.%.%
  _:匹配单个字符:
  二、c/s相关命令
  客户端命令;
  服务器命令;通过mysql连接发往服务器执行并取回结果
  客户端:
    mysql> help  
    \u db_name
  
    \q 退出
  
    \d CHAR:设定新的语句结束符
  
    \g 发送给服务器,通用结束符
  
    \G 语句结束标记,结果竖排方式显示
  
    \s 连接状态,
  服务端命令:
  DDL,DML,DCL
  注意:每个语句必须有语句结束符,默认为分号(;)
  三、数据类型://目的,确定数据格式,能够参与的运算,可用有效范围
  表:行和列
  创建表:定义表中的字段
  定义字段时:确定数据类型非常关键
  用于确定:数据存储格式、能参与运算种类、可表示的有效的数据范围
  字符型:字符集
  码表:在字符和二进制数字之间建立映射关系
  Db、client、server、Conn可以有不同的字符集
  show characet set
  类型:
    字符型  
        定长字符型:// 0-255个字符
  
            char(#):不区分字符大小写
  
            binary(#):区分大小写 0-255
  
            varbinary(#):0-65535
  
        变长字符型:// 0-65535多个
  
            varchar(#):需要一个结束符
  
            varbinary(#):需要结束符,占用一个字符
  
        对象存储://表中存放的是指针,真实的数据存储在其他地方
  
            text:存储大量文本,2^32次方个字符
  
                tinytext    0-255 //字节
  
                text        0-65535
  
                mediumtext    0-2^24
  
                longtext    0-2^32
  
            blob:二进制大对象,区分大小写
  
                tinyblob,blob,mediumblob,longblob 与text类似
  
        内置类型:
  
            set:集合
  
                SET (‘a’,’b’,’c’)表示插入的值可以是a,b,c三个字符的任意组合,即插入‘a',‘ac',‘abc'都是合法的
  
            enum:枚举
  
                ENUM (‘a’, ‘b’,‘c’)表示插入的值只能在a,b,c中进行选择
  

  

  
    数值型
  
        精确数值型
  
            int(tinyint,smallint,mediumint,int,bigint) 1,2,3,4,8
  
                int:2^32-1 或者-(2^32/2)-(2^32/2-1) //有无符号
  
             bit Bit类型只有1和0两个值
  
        近似数值型
  
            float 4字节
  
            dobule 8字节
  
                DECIMAL占用(m+2)个字节
  
                DECIMAL(m,d)中,m表示数字的总长度,小数点不占位;
  
                    d表示小数点后面的数字长度
  

  
    日期时间型
  
        日期型:date
  
        时间型:time
  
        日期时间型:datetime
  
        时间戳:timestamp //1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数
  
        年份:year(2),year(4)
  
    数据类型修饰符:
  
        unsigned:无符号数值型
  
        not null:非空 //
  
            default value:默认值
  字符型:
DSC0001.jpg

  数值型:
DSC0002.jpg

  字符修饰符:
  not null/null/default 'string'/collation ''/ 排序的规则
  show character set;
  show collation ;
  DML:数据操作语言,主要用于管理表中的数据,实现数据的增,删,改,查
  insert,delete,update,select
  数值类型修饰符:
  not null/null/default numer/
  auto_increment/select last_insert_id() //查看增长到了哪个
  float和double修饰符:
  auto_increment,default,not null,null,unsigned,zerofile
  bit:二级制类型
  booltype:
  tinyint(1) //mysql的bool型是只显示tinyint(1),1或者0
  boolean
  bool
  日期修饰符:
  null/not null/default
  enum和set类型
  enum //从1-65535个字符串,任意一个元素,但是不能组合
  set //1-64 bit个字符串的集合,元素可任意组合
  存储时:enum('a','1') //在存储数据的时候,存储的是,enmu中的索引
  例如insert .. value('a') //存储的是 0 ,也就是enum('a')的索引,而不是a字串
  set存储:
  set('a','b','c') //insert 数据'a' ,存储的是100 /因为a出现,其他没有出现
  //因此一般enum和set不拿来排序和比较
  修饰符:
  not null/null/default
  四、服务器端命令
  DDL:数据定义语言,主要用于定义数据库组件,例如表,索引,视图,用户,存储过程
  create,alter,drop
  DML:数据操作语言,主要用于管理表中的数据,实现数据的增,删,改,查
  insert,delete,update,select
  获取命令的帮助
  mysql>help COMMAND
  数据库管理:
  1.创建:CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification] ...
  create_specification:
  [DEFAULT] CHARACTER SET [=] charset_name [DEFAULT] COLLATE [=] collation_name
  字符集查看:show character set
  查看排序规则:show collation;

  2.修改ALTER {DATABASE | SCHEMA} [db_name] >  alter_specification:
  [DEFAULT] CHARACTER SET [=] charset_name [DEFAULT] COLLATE [=] collation_name
  3.删除DROP {DATABASE | SCHEMA} [IF EXISTS] db_name
  注:可以通过在data目录中创建子目录,来建立数据库,但是不建议这么做
  表管理:
    创建:create table if not exists tb_name (create_defination)  
        create_defination
  
            字段:col_name data_type
  
            键:primary key(col1,col2,...)
  
                unique key (col1,col2,...)
  
                foreign key(clo)
  
            索引:
  
                key|index [index_name} (col1,col2,..)
  
        create table student(id int unsigned not null,name char(30) not null,age tinyint unsigned,gender enum('f','m'));
  
        create table student(id int unsigned not null,name char(30) not null,age tinyint unsigned,gender enum('f','m'),primary key(id,name));
  
        注:unsigned 应该放在not null之前,紧挨着int之后,否则会出错
  

  
        engine = 存储引擎
  
        show tables status \G;查看默认引擎
  
        show tables status like student \G;查看指定表
  
        show engines:查看所有支持的引擎
  
        show table status like 'student' \G;
  注:数据库有专门的设计工具

  修改:alter table table_name>  alter_specification
  字段:
        add: ADD [COLUMN] col_name column_definition [FIRST | AFTER col_name ]  
            alter table student add class varchar(100) not null first;
  
        drop:DROP [COLUMN] col_name|PRIMARY KEY|FOREIGN KEY fk_symbol
  
            alter table student drop column class;
  
        modifty:MODIFY [COLUMN] col_name column_definition
  
            只修改定义
  
            lter table student modify class varchar(100) not null after id;
  
        change:CHANGE [COLUMN] old_col_name new_col_name column_definition [FIRST|AFTER col_name]
  键:
  添加:add {primary key|unique key|unique key} index_name
  删除:
  drop primary key
  drop froeign key fk_symbol
  drop key|index index_name //键在一定程度上也是索引
  索引:
  添加:add {index|key} [index_name} {col1,col2,...}
  删除:drop primary key
  alter table student drop primary key;
  alter table student add unique key (name);
  查看:show indexes from student
  表选项:
  engine = engine_name //不建议,创建时直接指定即可
  表的引用方式:
  tbl_name
  create mydb.class //绝对路径,库名.表明
  五、DDL和DML语句
  第二种创建方式:复制表结构
  第三种创建方式; 复制表数据
  1.索引:加速查询,但是不利于查询操作
  索引是特殊的数据结构:
  索引要有名称:
  创建:crete [索引选项] index index_name [index_type] on tbl_name (col1,col2,...)
  索引选项:unique,fulltext,spatial
  index_type: btree/hash
  mysql中只有memory才支持hash,而memroy表很少手动创建
  create index named_class on student (name,class);
  ALTER TABLE table_name ADD INDEX index_name (column_list)
  ALTER TABLE table_name ADD UNIQUE (column_list)
  ALTER TABLE table_name ADD PRIMARY KEY (column_list)
  删除
  DROP INDEX index_name ON talbe_name
  ALTER TABLE table_name DROP INDEX index_name
  ALTER TABLE table_name DROP PRIMARY KEY
  //没有修改,因为索引是及时创建的
  查看索引:
  SHOW INDEX FROM mytable FROM mydb;
  SHOW INDEX FROM mydb.mytable;
  mysql> show index from tblname;
  mysql> show keys from tblname;
  2.DML语句:
  insert [into] tbl_name {col1,clo2,,,} {values|value} (va1,va2,va3...),(va1,va2,va3,,,),...
  注意:
  字符型:引号
  数值型:前万不要引号
  insert into student values (1,'xiyu','ou yang feng',78,'f');
  insert into student (id,name) values (2,'huang yao shi'),(3,'zhou botong');
  select * from student;
  select
  1.select * from tbl_name
  2.select col1,col2,col3,..  from tbl_name
  显示时,字段可以显示为别名

  select>  3.select col1,col2,...  from tbl_name where claues
  where clause:用于指明挑选条件
  age>30
  操作符:
  >,>=,=,小于,小于等于
  组合测试:
  and
  or
  not
  操作符:
  between // age between 30 and 80
  like 'pattern' //
  like支持的通配符
  %:任意长度的任意字符
  _:单个字符
  rlike //正则表达式
  ^ 行首
  $ 结尾
  is
  is null//为空的
  is not null //非空的
  4.select col1,col2,... tbl_name [where clause] order by col_name,col_name2  [asc|desc]
  desc 将序排序

  select>
  elect>  select name from students where name like '%ang%'
  select name from student where name rlike '^z.*bo*';

  select>  delete
  delete from tbl_name [where where_conditon] [order by ...] [limit row_count]
  删除是按行删除的,不能只删除一行的一个字段
  delete from student where age is null //假如不给where,会删除整个表
  生成随机数据:
  for i in {1..100} ; do AGE=$RANDOM%100;mysql -e "insert into testdb.student (id,name,age) values ($i,'stu$i',$AGE);"; done
  stu$i,%ARG //使用“” 也可以
  delete from student  order by age desc limit 20;
  select * from student order by age desc;
  update:
  update  //id最大的人的年龄减去10岁

  update student set age=age-5 order by>
  select>  update student set age=age-15 where name not like 'stu%';
  六、用户账号及权限管理
  用户账号: 'username'@'host'
  host:此用户访问当前服务器时,允许其通过哪些主机远程创建链接
  表示方式:IP,网络,主机名,通配符{%和_}
  禁止检查主机名:my.cnf
  [mysqld]
  skip_name_resolve = ON

  create user 'wolf'@'host'>  删除用户:
  drop user test;
  查看用户信息:
  select host,user,password from user;
  授权级别:
  权限级别:管理权限、数据库、表、字段、存储过程;
  grant priv_type,... on [object_type]  db_name.tbl_name  to 'user'@'host'  [identified by 'password']
  db_name.tb_name
  db_name.* //库内的所有表
  *.* 所有的库和表
  db_name.routine_name: 指定库上的存储过程或存储函数
  [object_type]
  TABLE
  FUNCTION
  PROCEDURE
  grant select on testdb.* to 'testdb'@'192.168.4.%';     //假如没有改用户的话,会自动创建该用户
  grant select on testdb.student to 'wolf'@'192.168.4.%';
  flush privileges;
  show grants for 'wolf'@'192.168.4.%';
  show grants for current_user; //查看当前用户授权
  收回权限:
  revoke select on testdb.student from 'wolf'@'192.168.4.%';
  revoke ...  from
  grant  ...  on  ....  to ..A@B
  注意:MariaDB服务进程启动时,会读取mysql库的所有授权表至内存中;
  1.grant或revoke命令等执行的权限操作,会保存于表中,MariaDB此时一般会自动重新    读取授权表,权限修改会立即生效
  2.其他方式实现的权限,要想生效,必须flush privileges
  注意;安全选项
  /usr/local/mysql/bin/mysql_secure_installation 设置初始化密码
  后期添加密码:

  grant all privileges on MT.* to 'mt'@'192.168.4.%';  //假如忘了加>  select user,host,password from user; //是没有密码的
  update user set password=password('mingtian') where user='mt'; //只能使用这种
  insert 是插入一个新行,在这里不能使用
  七、phpMyAdmin //mysql图形化管理工具
  解压到网页目录
  ln -sv phpMyAdmin-3.4.10.1-all-languages MyAdmin
  cp config.sample.inc.php config.php
  openssl rand -base64 15
  FSJJJFVLvfiQeoepws88
  vim config.php //加密cookie
  $cfg['blowfish_secret'] = 'FSJJJFVLvfiQeoepws88'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
  systemctl restart httpd
  yum install php-mbstring -y //多种语言支持
  问题:缺少mcrypt扩展
  yum  install php-mcrypt
  问题:必须启用cookie才能使用
  1.vim config.inc.php
  $cfg['blowfish_secret'] = 'cookie';
  $cfg['Servers'][$i]['connect_type'] = 'socket'; //如果 MySQL 使用 socket 方式连接
  2.vim libraries/config.default.php
  $cfg['blowfish_secret'] = 'cookie'; 文件中默认为空,这里需要填写和 config.inc.php 一样的值。
  $cfg['Servers'][$i]['socket'] = '/tmp/mysql.sock'; 这个需要根据自己 mysql 配置内容填写,如果不知道置空
  图形管理工具:
  phpMyAdmin
  Navicat
  Mysql-Front
  ToadForMySQL
  SQLyog
  存储引擎的概念:   myisam,innodb,
  Myisam:不支持事务
  innodb:支持事务,不支持fulltext索引
  后面的文章会详细解释



运维网声明 1、欢迎大家加入本站运维交流群:群①:263444886群②:197202523群③:485755530群④:201730672群⑤:202807635运维网交流群⑥:281548029
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须注明原文的出处
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、运维网 - 服务您的运维操作管理专家!
6、联系人Email:admin@yunvn.com 网址:www.iyunv.com

点击关注更多内容
您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则  允许回帖邮件提醒楼主

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服 E-mail:kefu@yunvn.com

本站由青云提供云计算服务

运维网--中国最专业的运维工程师交流社区

京ICP备14039699号-1 Copyright © 2012-2018

使用手机软件扫描微信二维码

关注我们可获取更多热点资讯

Good good study day day up !


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


独家合作伙伴: 青云cloud

快速回复 返回顶部 返回列表