无他,唯手熟尔!

一些数据库知识点

数据库原理:

1.数据库管理系统

数据库是数据的汇集,它以一定的组织形式存于存储介质上
DBMS是管理数据库的系统软件,它实现数据库系统的各种功能。是数据库系
    统的核心,DBMS的权限设置,通过DBMS来访问磁盘上的数据文件
DBA:负责数据库的规划、设计、协调、维护和管理等工作
应用程序指以数据库为基础的应用程序
数据库和数据库管理系统(sqlserver,orcl,mysql只是数据库的管理软件)

2.关系型数据库:用的是SQL语言,表和表之间是有关联的,所以称之为关系型数据库

3.采用NoSQL(采用key-value值):redis,mondodb,分布式文件系统等,弥补了关系性数据库不支持高并发的缺点
最大缺点:性能很差,用户达到一定规模,瓶颈很明显
DBMS:管理多个数据库,由于性能,一般一个DBMS只放一个库
库:库一般存放的是同一项目相关的数据,由多个表组成
表:一张表由多个字段(column)和记录(row)组成
    关系 :关系就是二维表,其中:表中的行、列次序并不重要
    行row:表中的每一行,又称为一条记录
    列column:表中的每一列,称为属性,字段:如filed
    主键(Primary key):确保每条记录都是唯一的
        避免生成冗余数据
        被关联的字段一般为每个字段都是与众不同的,如:id
        一张表中,主键只能作用在一个字段上
        一个表只有一个主键,主键可以关联到多个字段,也叫复合主键
    域domain:限定属性(字段/列)的取值范围是合理的,如,性别只能是‘男’和‘女’两个值
RDBMS:
    MySQL: MySQL, MariaDB, Percona Server(全文都有讲解)
    PostgreSQL: 简称为pgsql,EnterpriseDB
    Oracle
    MSSQL 
    DB2
4.E-R图:实体-联系模型
5.联系类型:和设计数据库的结构密切相关
联系的类型:
    一对一联系(1:1)
    一对多联系(1:n)
        通过主键pk、外键fk把一对多的关系表示出来
        被依赖的表叫主键表:具体表现为哪个字段依赖(uk、pk字段)
        依赖别人的表叫外键表:fk字段
    多对多联系(m:n):如何确保数据不重复且不出现错误
        多个主键表pk和一张外键表fk,实现多对多的关系
            如a、b两个主键表,和c一个外键表,实现关系如下:
                fk1(fk-->a.pk)  fk2(fk-->b.pk)
数据库的操作:
    数据提取:在数据集合中提取感兴趣的内容:SELECT
    数据更新::变更数据库中的数据:INSERT、DELETE、UPDATE
6.约束:constraint,表中的数据要遵守的限制(下文会阐述为什么一个表只能有一个主键)
主键(pk):一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行;
        必须提供数据,一个表只能有一个,且NOT NULL,
        多个字段组成的主键叫复合主键 
惟一键(uk):一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行;
        一个表可以存在多个uk,允许为NULL
外键(fk):一个表中的某字段可填入的数据取决于另一个表的主键或唯一键已有
        的数据:作用在依赖的表上
检查:字段值在一定范围内,先设计字段的范围
7.范式:一般采用三范式(了解用的最多的三范式的原理)
8.三范式带来的问题是越规范越复杂,因为要实现三范式的规范性,会产生多个表,而多表查询时,会造成性能不好,有时创建表的时候要刻意打破范式规范.
第一范式(1NF):
    无重复的列,每一列都是不可分割的基本数据项,同一属性/字段中不能有多个
    值,即实体中的某个属性不能有多个值或者不能有重复的列/字段。除去同类型的
    字段,就是无重复的列
    说明:第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)
第二范式(2NF):
    属性完全依赖于主键,第二范式必须先满足第一范式,要求表中的每个
    行必须可以被唯一地区分。通常为表加上一个列,以存储各个实例的唯一标识
    PK,非PK的字段需要与整个PK有直接相关性,
    复合主键:多个字段组成一个主键(一个整体),来确保唯一性
    一般构建第三张表来确保不违反第二范式
第三范式(3NF):
    属性不依赖于其它非主属性,满足第三范式必须先满足第二范式。第三
    范式要求一个数据库表中不包含已在其它表中已包含的非主关键字信息,非PK
    的字段间不能有从属关系
    一般构建第三张表来确保不违反第三范式

===========================================================

===========================================================

下文正式介绍MySQL的安装和如何实现Mysql数据库的多实例

MySQL:MySQL和MariaDB
官方网址:
    https://www.mysql.com/
    http://mariadb.org/
官方文档
    https://dev.mysql.com/doc/
    https://mariadb.com/kb/en/ 
备注:
    centos7上采用了mariadb数据库,舍去了mysql
    centos6上采用了mysql数据库,主流版本:5.6 5.7
MYSQL的特性
插件式存储引擎:也称为“表类型”,存储管理器有多种实现版本,功能和特
    性可能均略有差别;用户可根据需要灵活选择,Mysql5.5.5开始innoDB引擎是
    MYSQL默认引擎
        MyISAM ==> Aria
        InnoDB ==> XtraDB
下文会对比两种引擎的区别,介绍为什么会逐渐使用innodb引擎
单进程,多线程:mysql会打开多线程
诸多扩展和新特性
提供了较多测试组件
开源
如何把数据保存到磁盘上和在磁盘上保存这些数据的格式

安装MYSQL:本文以centos7上安装mariadb5.5版本和10.2.19版本为实验

生产环境一般是源码编译安装或者二进制格式安装,yum安装用于测试环境
Mariadb安装方式:
    1、C语言源代码:编译安装
    2、二进制格式的程序包:展开至特定路径,并经过简单配置后即可使用
    3、yum,rpm安装
centos6:mysql-server:3306
    /etc/rc.d/inti.d/mysqld
    /var/log/mysqld.log
    /var/lib/mysql
    /etc/my.cnf  来源于mysql-libs包
centos7:mariadb
    客户端包
    服务器端
    /etc/my.cnf.d/service.
    /etc/libxec
    插件

centos7上安装Mariadb

1.yum安装:光盘自带5.5.56版本,默认是安装老版本
    yum install mariadb-server 
    默认也会把客户端工具包安装(mariadb):常用的就是/usr/bin/mysql客户端工具
    pstree -p 可以看出是单进程,多线程的
    如果客户端和服务端都在本机就可以通过本地的mysql.sock进行通信,不需要再走tcp协议
安装新版本:
    2.配置官网上的mariadb-10.2.19版本的yum源,然后安装
        mariadb官网上有专门的yum源,配置后即可下载安装
        yum install MariaDB-Server,即覆盖安装10.2.19版本
    3.二进制安装mariadb-10.2.19版本
        二进制安装:编译安装的前三步不用做
        通过已经编译完的二进制包进行安装(mariadb官网下载)
    4.源码编译mariadb-10.2.19版本

二进制安装mariadb-10.2.19:(下面有一键二进制安装脚本)

官网下载已经编译完了的二进制包mariadb-10.2.19-linux-x86_64.tar
1.mysql数据库较大:建议数据使用逻辑卷,方便以后扩容
    fdisk -l /dev/sdb 创建一个分区做逻辑卷
    pvcreate /dev/sdb1
    vgcreate vg_data /dev/sdb1
    lvcreate -n lv_mysql -l 100%FREE vg_data
    mkfs.xfs /dev/vg_data/lv_mysql 
    mkdir /mysql
    添加到vim /etc/fstab
2.创建用户
    useradd -r -s /sbin/nologin -d /mysql/data mysql
        一定不要生成用户的家目录,因为会把/etc/skel下的隐藏文件夹复制
        到家目录下,show databases;时,会看到一些奇怪的目录
3.准备数据目录,建议使用逻辑卷
    mkdir /mysql/data
4.解压二进制安装包
    tar xvf mariadb-10.2.19-linux-x86_64.tar.gz -C /usr/local/
    cd /usr/local
    ln -s mariadb-10.2.19-linux-x86_64/ mysql
    chown -R root:mysql /usr/local/mysql/
5.准备配置文件(不修改/etc/mycnf)拷贝解压完的文件
    mkdir /etc/mysql/
    cp support-files/my-huge.cnf /etc/mysql/my.cnf
        根据性能来拷贝配置文件
    
[mysqld]

中添加三个选项:/etc/mysql/my.cnf datadir = /mysql/data innodb_file_per_table = on skip_name_resolve = on 禁止主机名解析,建议使用 6.创建数据库文件:(通过自带脚本工具) cd /usr/local/mysql/ scripts/mysql_install_db –datadir=/mysql/data –user=mysql 7.准备服务脚本,并启动服务 cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld chkconfig –add mysqld service mysqld start 8.PATH路径 echo ‘PATH=/user/local/mysql/bin:$PATH’ > /etc/profile.d/mysql.sh 9.安全初始化,设置密码,删除匿名账户等信息 /user/local/mysql/bin/mysql_secure_installation

源码编译Mariadb-10.2.19

和其他软件的源码不同之处:
    不用传统的config:必须在解压缩的目录中,而不能在目录外编译
    cmake:cmake的重要特性之一是其独立于源码(out-of-source)的编译功能,即编译工作可以在另一个指定的目录中而非源码目录中进行,这可以保证源码目录不受任何一次编译的影响,因此在同一个源码树上可以进行多次不同的编译,如针对于不同平台编译
1.安装各种依赖包
    yum install bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel gcc gcc-c++ cmake ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel
2.做准备用户和数据目录
    useradd –r –s /sbin/nologin –d /data/mysql/ mysql
    mkdir /data/mysql
    chown mysql.mysql /data/mysql
    tar xvf mariadb-10.2.19.tar.gz
3.cd /data/mariadb-10.2.19,通过cmake编译
    cmake . \
    -DCMAKE_INSTALL_PREFIX=/app/mysql \
    -DMYSQL_DATADIR=/data/mysql/ \
    -DSYSCONFDIR=/etc \
    -DMYSQL_USER=mysql \
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
    -DWITH_PARTITION_STORAGE_ENGINE=1 \
    -DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
    -DWITH_DEBUG=0 \
    -DWITH_READLINE=1 \
    -DWITH_SSL=system \
    -DWITH_ZLIB=system \
    -DWITH_LIBWRAP=0 \
    -DENABLED_LOCAL_INFILE=1 \
    -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \ (这个地方要改成数据库的路径)
    -DDEFAULT_CHARSET=utf8 \
    -DDEFAULT_COLLATION=utf8_general_ci
    备注:如果出错: 执行rm -f CMakeCache.txt,再重新执行
5.make && make install 
6.接下来就和二进制安装配置是一样的
    1.创建数据库文件:
        cd /app/mysql/
        scripts/mysql_install_db --datadir=/data/mysql --user=mysql
    2.准备配置文件
        cd /app/mysql/
        cp support-files/my-large.cnf /etc/my.cnf
            根据性能来拷贝配置文件
        [mysqld]中添加三个选项:/etc/my.cnf
        datadir = /data/mysql
        innodb_file_per_table = on
        skip_name_resolve = on 禁止主机名解析,建议使用
        修改socket路径为=/data/mysql/mysql.sock
                        (cmake时,如果路径是错的,则需要修改)
    3.准备服务脚本,并启动服务
        cp /app/mysql/support-files/mysql.server /etc/init.d/mysqld
        chkconfig --add mysqld
        service mysqld start
    4.PATH路径
        echo 'PATH=/app/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
        ./etc/profile.d/mysql.sh
    5.安全初始化
        /user/local/mysql/bin/mysql_secure_installation

mysql登录的安全加固

安装好mariadb后,可以直接通过客户端工具mysql就可以连接
存在的问题:
    MariaDB [(none)]> select user,host,password from mysql.user;
    +------+-----------+----------+
    | user | host      | password |
    +------+-----------+----------+
    | root | localhost |          |
    | root | mini7-1   |          |
    | root | 127.0.0.1 |          |
    | root | ::1       |          |
    |      | localhost |          |
    |      | mini7-1   |          |
    +------+-----------+----------+
    
1.安装好之后,所有账号密码都是空的(不安全)
2.root(数据库的用户,非linux系统的)可以通过三种方式连接到mysql
    a.mysql 默认用root登录
    b.mysql -uroot -p -hlocalhost
    c.mysql -uroot -p -hmini7-1
    d.mysql -uroot -p -h127.0.0.1
3.随便一个匿名账户都可以通过本机或者主机名登录(不安全)
    mysql -uabcd  
所以可以通过自带的脚本mysql_secure_installation初始化来设置这些不安全的操作
下文也有通过自带脚本为数据库多实例进行安全加固
当然,也可以使用服务端的命令来代替脚本做安全加固(后文会介绍)
        设置数据库管理员root口令
        禁止root远程登录
        删除anonymous用户帐号
        删除test数据库

执行完脚本后可以看出test数据库被删除了,root用户有口令,不允许匿名账号登录了
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
MariaDB [(none)]> select user,host,password from mysql.user;
+------+-----------+-------------------------------------------+
| user | host      | password                                  |
+------+-----------+-------------------------------------------+
| root | localhost | *FAAFFE644E901CFAFAEC7562415E5FAEC243B8B2 |
| root | mini7-1   | *FAAFFE644E901CFAFAEC7562415E5FAEC243B8B2 |
| root | 127.0.0.1 | *FAAFFE644E901CFAFAEC7562415E5FAEC243B8B2 |
| root | ::1       | *FAAFFE644E901CFAFAEC7562415E5FAEC243B8B2 |
+------+-----------+-------------------------------------------+

Mysql的登录账户和管理工具:又分服务器端和客户端工具

mysql用户账号由两部分组成:
    'USERNAME'@'HOST'
说明:
    HOST限制此用户可通过哪些远程主机连接mysql服务器
    支持使用通配符:
        % 匹配任意长度的任意字符
         172.16.0.0/255.255.0.0 或 172.16.%.%
        _ 匹配任意单个字符
    如: [email protected]  test用户只能通过192.168.34.1远程连接到mysql
        [email protected]%  test用户只能通过192.168.34.0网段远程连接到mysql
mysql的服务器端程序:
    mysqld_safe
    mysqld
    mysqld_multi 多实例 ,示例:mysqld_multi --example
mysql的客户端程序:
    mysql: 交互式的CLI工具
    mysqldump:备份工具,基于mysql协议向mysqld发起查询请求,并将查得的所
其他主机如果远程管理192.168.34.103上的mysql,需要:
    1.先在192.168.34.103的数据库上创建账号,并设置允许远程主机登录的权限
        后文会介绍如何设置mysql的用户和权限
    2.安装mysql客户端管理工具
        yum install mysql -y
    3.mysql -utest -p口令 -h当前主机IP
    如:mysql -utest -ptest123 -h192.168.34.103(此处是连接的数据库主机IP)
Mysql的客户端工具mysql用法
mysql客户端可用选项:!为重要的常用选项
    -A, --no-auto-rehash 禁止补全   
    !-u, --user= 用户名,默认为root
    !-h, --host= 服务器主机,默认为localhost
    !-p, --passowrd= 用户密码,建议使用-p,默认为空密码
    !-P, --port= 服务器端口
    !-S, --socket= 指定连接socket文件路径,当前主机,不支持远程连接
        多用于多实例调用不同的socket文件来登录不同的数据库
    -D, --database= 指定默认数据库  =use mysql
        如:登录到多实例3308数据库的mysql库
            mysql -Dmysql -S /data/mysql1/3308/socket/mysql.sock
    -C, --compress 启用压缩   压缩传输信息,节约带宽
    !-e "SQL" 执行SQL命令
        如:显示多实例3308的mysql库的所有表
            mysql -S /data/mysql1/3308/socket/mysql.sock -e"show tables from mysql"
     -V, --version 显示版本
     -v --verbose 显示详细信息
    --print-defaults 获取程序默认使用的配置
socket地址
    服务器监听的两种socket地址:
        ip socket: 监听在tcp的3306端口,支持远程通信
    unix sock: 监听在sock文件上,仅支持本机通信
         如:/var/lib/mysql/mysql.sock  ---删除后,重启服务自动生成
         说明:host为localhost,127.0.0.1时自动使用unix sock
登录到mysql后,help看到的客户端功能列表(很少),而且不是服务器端命令(很多)(后文会通篇介绍)
客户端命令和服务器端命令明显区别,服务器端命令要加;分号结尾
?         (\?) Synonym for `help'.
clear     (\c) Clear the current input statement.
connect   (\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set statement delimiter.
edit      (\e) Edit command with $EDITOR.
ego       (\G) Send command to mysql server, display result vertically.
exit      (\q) Exit mysql. Same as quit.
go        (\g) Send command to mysql server.
help      (\h) Display this help.
nopager   (\n) Disable pager, print to stdout.
notee     (\t) Don't write into outfile.
pager     (\P) Set PAGER [to_pager]. Print the query results via PAGER.
print     (\p) Print current command.
prompt    (\R) Change your mysql prompt.
quit      (\q) Quit mysql.
rehash    (\#) Rebuild completion hash.
source    (\.) Execute an SQL script file. Takes a file name as an argument.
status    (\s) Get status information from the server.
system    (\!) Execute a system shell command.
tee       (\T) Set outfile [to_outfile]. Append everything into given outfile.
use       (\u) Use another database. Takes database name as argument.
charset   (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets.
warnings  (\W) Show warnings after every statement.
nowarning (\w) Don't show warnings after every statement.
导入数据库脚本和自定义Mysql端的提示符:避免混淆测试环境和生产环境
脚本模式: 将sql脚本导入到数据库中执行
    方式1:
        先准备好数据库脚本,再导入
        mysql –uUSERNAME -pPASSWORD < /path/somefile.sql
    方式二:
       或者登录mysql后 > 通过source执行
       如:mysql> source /path/from/somefile.sql

自定义mysql的提示符:存在优先级问题
    1.把提示符保存在linux系统中
     echo export MYSQL_PS1="(\[email protected]\h \v) [\d]> "  > /etc/profile.d/mysql.sh
    2.把提示符保存在/etc/my.cnf.d/mysql-clients.cnf客户端配置文件
        prompt="\\r:\\m:\\s> " 
    3.临时生效:
         登录时执行mysql --prompt="(\[email protected]\h \v) [\d]> " -uroot -proot123

Mysql的服务器端配置

服务器端(mysqld):工作特性有多种配置方式
1、命令行选项:
2、配置文件:类ini格式
 集中式的配置,能够为mysql的各应用程序提供配置信息
    [mysqld]     ---服务器端配置
    [mysqld_safe]   ---safe配置
    [mysqld_multi]  ---多实例的配置
    [mysql]         ---客户端配置
    [mysqldump]
    [server]
    [client]
格式:parameter = value
说明:_和- 相同
        1,ON,TRUE意义相同, 0,OFF,FALSE意义相同

Mysql的配置文件:多处可设置,但有优先级:一般修改my.cnf文件

后面覆盖前面的配置文件,顺序如下:
    针对所有数据库设置生效:
        /etc/my.cnf           Global选项
        /etc/mysql/my.cnf     Global选项
        SYSCONFDIR/my.cnf     Global选项   ---编译安装时指定目录
    针对特定实例生效:
        $MYSQL_HOME/my.cnf    Server-specific 选项
        --defaults-extra-file=path
        ~/.my.cnf             User-specific 选项

如何调整设置数据库的相关信息

数据库里查看数据库路径:
    show variables like 'datadir'; 
查看二进制路径:
    show variables like 'basedir';
修改数据库路径:
    service mysqld stop 先停服务
    cp -av /mysql/data /data/mysql
    修改配置文件: /etc/mysql/my.cnf
    把datadir=/mysql/data;改成datadir=/data/mysql即可
所以数据库实际上是一个个文件夹,备份文件夹也就相当于备份数据库

关系型数据库的常见组件

数据库:database
表:table
行:row
列:column
索引:index
视图:view
用户:user
权限:privilege
存储过程:procedure
存储函数:function
触发器:trigger
事件调度器:event scheduler,任务计划

SQL语言:

SQL语言规范:
    在数据库系统中,SQL语句不区分大小写(建议用大写)
    SQL语句可单行或多行书写,以“;”结尾
    关键词不能跨多行或简写
    用空格和缩进来提高语句的可读性
    子句通常位于独立行,便于编辑,提高可读性
    注释:
    SQL标准:
        /*注释内容*/ 多行注释
        -- 注释内容 单行注释,注意有空格
        MySQL注释:
        #

SQL语句分类:
    DDL: Data Defination Language 数据定义语言
        CREATE,DROP,ALTER 
            --->创建、删除、修改 
    DML: Data Manipulation Language 数据操纵语言
        INSERT,DELETE,UPDATE  
            --->数据的增、删、改
    DCL:Data Control Language 数据控制语言
        GRANT,REVOKE,COMMIT,ROLLBACK 
            --->授权、取消权限、提交、撤销操作
    DQL:Data Query Language 数据查询语言
        SELECT
            --->查询

Mysql的多实例(生产环境不使用多实例,测试环境要用到多个版本的mysql,才用到多实例)

搭建Mysql多实例:在上面的源码编译的主机上创建mysql的多实例
前提:
    多实例,要连接到网络,进而就用到套接字:IP+不同端口
    mysql要实现多实例:每个实例都要有各自的端口号,数据库配置文件、socket文件
步骤:
在上面的编译安装Mariadb-10.2.19主机上实现mysql的多实例
1.创建使用3306,3307,3307端口三个实例目录
    mkdir /data/mysql1/{3306,3307,3308}
2.为了条理清晰,将配置文件目录/etc,socket,log,pid文件分开放
    mkdir {3306,3307,3308}/{etc,socket,log,pid}
3.因为是要实现多实例,二进制程序不需要再重新安装了
    但是数据看,配置文件,socket文件等都要重新准备
    chown -R mysql.mysql /mysql1/{3306,3307,3308}
4.生成各自的数据库文件
cd /app/mysql/
./scripts/mysql_install_db --datadir=/data/mysql1/3306 --user=mysql
./scripts/mysql_install_db --datadir=/data/mysql1/3307 --user=mysql
./scripts/mysql_install_db --datadir=/data/mysql1/3308 --user=mysql
5.拷贝配置文件/etc/my.cnf到各自的目录下的/etc目录下
    并修改真正的端口和各自的文件路径
    [mysqld]
    port=3306
    datadir=/data/mysql1/3306/
    socket=/data/mysql1/3306/socket/mysql.sock
    [mysqld_safe]
    log-error=/data/mysql1/3306/log/mariadb.log
    pid-file=/data/mysql1/3306/pid/mariadb.pid
6.准备启动脚本
    将准备好的启动脚本mysqld拷贝到实例的目录下,并修改
        如何写启动脚本:mysqld 用到function&case
7.上面的步骤准备好,就可以启动多实例数据库了
    1.通过目录启动
        . /data/mysql1/3306/mysqld start
    2.当然也可以放到系统服务的目录下,通过service命令去调用
        cp /data/mysql1/3308/mysqld /etc/init.d/mysqld3308
        chkconfig --list
        chkconfig -add mysqld3308
        systemctl start|stop|restart mysqld3308
        或者service mysqld3308 start|stop|restart
8.启动多实例数据库后,就登录不同的数据库
    因为是多实例,登录时要指定socket文件,显示要登录的是哪个多实例数据库
    mysql -uroot -p -S /data/mysql1/3307/socket/mysql.sock
    登录进去后,可以通过status,显示socket的路径
    或者select @@port; 查看登录的是哪个端口号  
9.关闭多实例数据库
    ./data/mysql1/3306/mysqld stop
        因为在前面的脚本里,因为有密码(空密码),需要设置密码才能停止服务
10.给多实例进行安全加固,设置不同的登录密码
    1.可以通过自带的安全脚本给各个多实例数据库设置密码(二进制路径/app/mysql/bin)
        设置密码时要指定socket文件,是为哪个数据库设置的密码
        mysql_secure_installation -S /data/mysql1/3308/socket/mysql.sock
    2.也可以通过登录到各自数据库,再通过内部命名进行修改和删除,进行安全加固
      (后文介绍)

作者:孤独时代的痞子liu
链接:https://www.jianshu.com/p/e3df8e9fb345
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

赞(0) 打赏
未经允许不得转载:沙の志 » 一些数据库知识点

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

沙の志