• 基于CentOS7的MariaDB数据库的安装


    一、实验环境:

      系统:CentOS7.6,关闭了防火墙与SELINUX

      数据库版本:mariadb-10.2.25(二进制安装与源码安装)

    二、安装方法:

    1、yum源安装

     (1) 配置yum源,官方yum源下载太慢,用国内的镜像源吧

    [root@centos7 ~]# cat /etc/yum.repos.d/mariadb.repo 
    # MariaDB 10.2 CentOS repository list - created 2019-11-29 02:18 UTC
    # http://downloads.mariadb.org/mariadb/repositories/
    [mariadb]
    name = MariaDB
    baseurl = https://mirrors.tuna.tsinghua.edu.cn/mariadb/yum/10.2/centos7-amd64/
    gpgcheck=0

     (2) 开始安装

    [root@centos7 ~]# yum install -y MariaDB-server MariaDB-client

     (3) 启动服务

    [root@centos7 ~]# systemctl start mariadb
    [root@centos7 ~]# ss -nlt
    State      Recv-Q Send-Q Local Address:Port               Peer Address:Port              
    LISTEN     0      128               *:111                           *:*                  
    LISTEN     0      128               *:6000                          *:*                  
    LISTEN     0      5      192.168.122.1:53                            *:*                  
    LISTEN     0      128               *:22                            *:*                  
    LISTEN     0      128       127.0.0.1:631                           *:*                  
    LISTEN     0      100       127.0.0.1:25                            *:*                  
    LISTEN     0      80               :::3306                         :::*                  
    LISTEN     0      128              :::111                          :::*                  
    LISTEN     0      128              :::6000                         :::*                  
    LISTEN     0      128              :::22                           :::*                  
    LISTEN     0      128             ::1:631                          :::*                  
    LISTEN     0      100             ::1:25                           :::*                  
    [root@centos7 ~]# mysql
    Welcome to the MariaDB monitor.  Commands end with ; or g.
    Your MariaDB connection id is 8
    Server version: 10.2.29-MariaDB MariaDB Server
    
    Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    MariaDB [(none)]> 

     (4) 设置mysql密码,可以用/usr/bin/mysqladmin -u root password 'new-password' 设置,或使用安全脚本设置,以下为用脚本设置

    [root@centos7 ~]# /usr/bin/mysql_secure_installation 
    #使用脚本交互式设置
    NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
          SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
    
    In order to log into MariaDB to secure it, we'll need the current
    password for the root user.  If you've just installed MariaDB, and
    you haven't set the root password yet, the password will be blank,
    so you should just press enter here.
    
    Enter current password for root (enter for none): 
    OK, successfully used password, moving on...
    
    Setting the root password ensures that nobody can log into the MariaDB
    root user without the proper authorisation.
    
    Set root password? [Y/n] y
    New password: 
    Re-enter new password: 
    Password updated successfully!
    Reloading privilege tables..
     ... Success!
    
    
    By default, a MariaDB installation has an anonymous user, allowing anyone
    to log into MariaDB without having to have a user account created for
    them.  This is intended only for testing, and to make the installation
    go a bit smoother.  You should remove them before moving into a
    production environment.
    
    Remove anonymous users? [Y/n] y
     ... Success!
    
    Normally, root should only be allowed to connect from 'localhost'.  This
    ensures that someone cannot guess at the root password from the network.
    
    Disallow root login remotely? [Y/n] y
     ... Success!
    
    By default, MariaDB comes with a database named 'test' that anyone can
    access.  This is also intended only for testing, and should be removed
    before moving into a production environment.
    
    Remove test database and access to it? [Y/n] y
     - Dropping test database...
     ... Success!
     - Removing privileges on test database...
     ... Success!
    
    Reloading the privilege tables will ensure that all changes made so far
    will take effect immediately.
    
    Reload privilege tables now? [Y/n] y
     ... Success!
    
    Cleaning up...
    
    All done!  If you've completed all of the above steps, your MariaDB
    installation should now be secure.
    
    Thanks for using MariaDB!
    View Code

    2、源码安装

     (1) 先下载文件到服务器

    [root@centos7 ~]# ll mariadb-10.2.25.tar.gz 
    -rw-r--r-- 1 root root 71997847 Nov 29 11:40 mariadb-10.2.25.tar.gz

     (2) 安装相应的包

    [root@centos7 ~]# yum install -y 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

     (3) 新建mysql用户和数据目录

    [root@centos7 ~]# useradd -r -s /sbin/nologin -d /data/mysql mysql
    [root@centos7 ~]# mkdir /data/mysql
    [root@centos7 ~]# chown mysql:mysql /data/mysql
    [root@centos7 ~]# tar -zxvf mariadb-10.2.25.tar.gz

     (4) cmake编译安装

    [root@centos7 ~]# cd mariadb-10.2.25/
    [root@centos7 mariadb-10.2.25]# 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
    [root@centos7 mariadb-10.2.25]# make && make install
    #提示:如果出错,执行rm -f CMakeCache.txt
    #如果出错信息中有CXX等错误信息,可能是需要安装libdb-cxx-devel这个包,可以安装后 yum -install -y libdb-cxx-devel 再试一次
    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
    编译代码

     (5) 安装完成后,配置环境变量

    [root@centos7 mariadb-10.2.25]# echo 'PATH=/app/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
    [root@centos7 mariadb-10.2.25]# . /etc/profile.d/mysql.sh 
    [root@centos7 mariadb-10.2.25]# echo $PATH
    /app/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

     (6) 初始化数据库,生成数据库文件

    [root@centos7 bin]# cd /app/mysql/
    [root@centos7 mysql]# scripts/mysql_install_db --datadir=/data/mysql --user=mysql
    Installing MariaDB/MySQL system tables in '/data/mysql' ...
    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 MariaDB root USER !
    To do so, start the server, then issue the following commands:
    
    './bin/mysqladmin' -u root password 'new-password'
    './bin/mysqladmin' -u root -h centos7.localdomain password 'new-password'
    
    Alternatively you can run:
    './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 MariaDB Knowledgebase at http://mariadb.com/kb or the
    MySQL manual for more instructions.
    
    You can start the MariaDB daemon with:
    cd '.' ; ./bin/mysqld_safe --datadir='/data/mysql'
    
    You can test the MariaDB daemon with mysql-test-run.pl
    cd './mysql-test' ; perl mysql-test-run.pl
    
    Please report any problems at http://mariadb.org/jira
    
    The latest information about MariaDB is available at http://mariadb.org/.
    You can find additional information about the MySQL part at:
    http://dev.mysql.com
    Consider joining MariaDB's strong and vibrant community:
    https://mariadb.org/get-involved/

     (7) 准备配置文件与启动脚本

    [root@centos7 mysql]# cp /app/mysql/support-files/my-huge.cnf /etc/my.cnf
    [root@centos7 mysql]# cp /app/mysql/support-files/mysql.server /etc/init.d/mysqld

     (8) 启动服务

    [root@centos7 mysql]# chkconfig --add mysqld
    [root@centos7 mysql]# service mysqld start
    [root@centos7 mysql]# ss -ntlp|grep 3306
    LISTEN     0      80          :::3306                    :::*                   users:(("mysqld",pid=97848,fd=21))

     3、二进制程序包安装

     (1) 先下载二进制程序包到服务器

    [root@centos7 ~]# ll mariadb-10.2.25-linux-x86_64.tar.gz 
    -rw-r--r-- 1 root root 457955398 Nov 29 13:32 mariadb-10.2.25-linux-x86_64.tar.gz

     (2) 新建mysql用户与数据目录

    [root@centos7 ~]# useradd -r -s /sbin/nologin -d /data/mysql mysql
    [root@centos7 ~]# mkdir /data/mysql
    [root@centos7 ~]# chown mysql:mysql /data/mysql/

     (3) 准备二进制程序

    [root@centos7 ~]# tar -zxvf mariadb-10.2.25-linux-x86_64.tar.gz -C /usr/local
    [root@centos7 ~]# cd /usr/local/
    [root@centos7 local]# ln -sv mariadb-10.2.25-linux-x86_64 mysql
    ‘mysql’ -> ‘mariadb-10.2.25-linux-x86_64’
    [root@centos7 local]# chown -R root:mysql /usr/local/mysql

     (4) 准备配置文件

    [root@centos7 mysql]# mkdir /etc/mysql
    [root@centos7 mysql]# cp support-files/my-large.cnf /etc/mysql/my.cnf
    [root@centos7 mysql]# vim /etc/mysql/my.cnf 
    #在[mysqld]中添加下面三个选项:
    datadir    = /data/mysql
    innodb_file_per_table = on
    skip_name_resolve = on        #禁止主机名解析,建议使用

     (5) 初始化数据库,生成数据库文件

    [root@centos7 ~]# cd /usr/local/mysql
    [root@centos7 mysql]# ./scripts/mysql_install_db --datadir=/data/mysql --user=mysql
    Installing MariaDB/MySQL system tables in '/data/mysql' ...
    2019-11-29 13:53:32 140116365457216 [Warning] 'THREAD_CONCURRENCY' is deprecated and will be removed in a future release.
    2019-11-29 13:53:33 140116364871424 [Warning] Failed to load slave replication state from table mysql.gtid_slave_pos: 1146: Table 'mysql.gtid_slave_pos' doesn't exist
    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 MariaDB root USER !
    To do so, start the server, then issue the following commands:
    
    './bin/mysqladmin' -u root password 'new-password'
    './bin/mysqladmin' -u root -h centos7.localdomain password 'new-password'
    
    Alternatively you can run:
    './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 MariaDB Knowledgebase at http://mariadb.com/kb or the
    MySQL manual for more instructions.
    
    You can start the MariaDB daemon with:
    cd '.' ; ./bin/mysqld_safe --datadir='/data/mysql'
    
    You can test the MariaDB daemon with mysql-test-run.pl
    cd './mysql-test' ; perl mysql-test-run.pl
    
    Please report any problems at http://mariadb.org/jira
    
    The latest information about MariaDB is available at http://mariadb.org/.
    You can find additional information about the MySQL part at:
    http://dev.mysql.com
    Consider joining MariaDB's strong and vibrant community:
    https://mariadb.org/get-involved/
    View Code

     (6) 准备服务脚本,并启动服务

    [root@centos7 mysql]# cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
    [root@centos7 mysql]# chkconfig --add mysqld
    [root@centos7 mysql]# service mysqld start
    Starting mysqld (via systemctl):                           [  OK  ]

     (7) 配置PATH变量

    [root@centos7 mysql]# echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
    [root@centos7 mysql]# . /etc/profile.d/mysql.sh 
    [root@centos7 mysql]# mysql
    Welcome to the MariaDB monitor.  Commands end with ; or g.
    Your MariaDB connection id is 10
    Server version: 10.2.25-MariaDB-log MariaDB Server
    
    Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    MariaDB [(none)]>

     (8) 安装后数据库是没有密码的,可以使用安全初始化脚本修改密码

    [root@centos7 mysql]# /usr/local/mysql/bin/mysql_secure_installation 
    #或用以下命令,前提是PATH变量已配好
    [root@centos7 mysql]# mysql_secure_installation

    三、多实例的配置

     以二进制程序包进行配置

     (1) 先下载二进制程序包到服务器 

    [root@centos7 ~]# ll mariadb-10.2.25-linux-x86_64.tar.gz 
    -rw-r--r-- 1 root root 457955398 Nov 29 14:12 mariadb-10.2.25-linux-x86_64.tar.gz

     (2) 新建mysql用户与数据目录

    [root@centos7 ~]# useradd -r -s /sbin/nologin -d /data/mysql mysql
    [root@centos7 ~]# mkdir -pv /mysql/{3306,3307,3308}/{etc,data,bin,log,socket,pid}
    [root@centos7 ~]# tree /mysql
    /mysql
    ├── 3306
    │   ├── bin
    │   ├── data
    │   ├── etc
    │   ├── log
    │   ├── pid
    │   └── socket
    ├── 3307
    │   ├── bin
    │   ├── data
    │   ├── etc
    │   ├── log
    │   ├── pid
    │   └── socket
    └── 3308
        ├── bin
        ├── data
        ├── etc
        ├── log
        ├── pid
        └── socket
    
    21 directories, 0 files
    [root@centos7 ~]# chown -R mysql:mysql /mysql

     (3) 解压二进制程序包并初始化生成数据库文件到各实例目录

    [root@centos7 ~]# tar -zxvf mariadb-10.2.25-linux-x86_64.tar.gz -C /usr/local
    [root@centos7 ~]# cd /usr/local/
    [root@centos7 local]# ln -sv mariadb-10.2.25-linux-x86_64 mysql
    [root@centos7 local]# chown -R root:mysql /usr/local/mysql/
    [root@centos7 mysql]# cd /usr/local/mysql/
    [root@centos7 mysql]# ./scripts/mysql_install_db --datadir=/mysql/3306/data/ --user=mysql
    [root@centos7 mysql]# ./scripts/mysql_install_db --datadir=/mysql/3307/data/ --user=mysql
    [root@centos7 mysql]# ./scripts/mysql_install_db --datadir=/mysql/3308/data/ --user=mysql

     (4) 准备各实例的配置文件

    [root@centos7 mysql]# pwd
    /usr/local/mysql
    [root@centos7 mysql]# cp support-files/my-huge.cnf /mysql/3306/etc/my.cnf
    [root@centos7 mysql]# vim /mysql/3306/etc/my.cnf
    [root@centos7 mysql]# grep -vE '#|^$' /mysql/3306/etc/my.cnf
    [client]
    port        = 3306    #修改点
    socket    = /mysql/3306/socket/mysql.sock
    [mysqld]
    port        = 3306    #修改点
    datadir    =/mysql/3306/data    #修改点 没有则添加
    socket    = /mysql/3306/socket/mysql.sock #修改点 
    skip-external-locking
    key_buffer_size = 384M
    max_allowed_packet = 1M
    table_open_cache = 512
    sort_buffer_size = 2M
    read_buffer_size = 2M
    read_rnd_buffer_size = 8M
    myisam_sort_buffer_size = 64M
    thread_cache_size = 8
    query_cache_size = 32M
    thread_concurrency = 8
    log-bin=mysql-bin
    server-id    = 1    #修改点
    [mysqldump]
    quick
    max_allowed_packet = 16M
    [mysql]
    no-auto-rehash
    [myisamchk]
    key_buffer_size = 256M
    sort_buffer_size = 256M
    read_buffer = 2M
    write_buffer = 2M
    [mysqlhotcopy]
    interactive-timeout
    [mysqld_safe]    #修改点 没有则添加
    log-error = /mysql/3306/log/mariadb.log   #修改点 没有则添加
    pid-file  = /mysql/3306/pid/mariadb.pid    #修改点 没有则添加
    [root@centos7 mysql]# cp /mysql/3306/etc/my.cnf /mysql/3307/etc/
    [root@centos7 mysql]# cp /mysql/3306/etc/my.cnf /mysql/3308/etc/
    [root@centos7 mysql]# sed -i 's/3306/3307/g' /mysql/3307/etc/my.cnf 
    [root@centos7 mysql]# sed -i 's/3306/3308/g' /mysql/3308/etc/my.cnf 
    [root@centos7 mysql]# sed -ir 's/^server-id.*/server-id = 2/' /mysql/3307/etc/my.cnf
    [root@centos7 mysql]# sed -ir 's/^server-id.*/server-id = 3/' /mysql/3308/etc/my.cnf

     (5) 准备启动服务脚本

    [root@centos7 mysql]# cd /mysql/3306/bin/
    [root@centos7 bin]# vim mysqld 
    [root@centos7 bin]# cat mysqld 
    #!/bin/bash
    
    port=3306    #端口号记得要改
    mysql_user="root"    #数据库用户名
    mysql_pwd=""   #数据库密码,因初始化时是没有密码的,此外先为空,后续记得改
    cmd_path="/usr/local/mysql/bin"   #命令路径 
    mysql_basedir="/mysql"    
    mysql_sock="${mysql_basedir}/${port}/socket/mysql.sock"
    
    function_start_mysql()
    {
        if [ ! -e "$mysql_sock" ];then
          printf "Starting MySQL...
    "
          ${cmd_path}/mysqld_safe --defaults-file=${mysql_basedir}/${port}/etc/my.cnf  &> /dev/null  &
        else
          printf "MySQL is running...
    "
          exit
        fi
    }
    
    
    function_stop_mysql()
    {
        if [ ! -e "$mysql_sock" ];then
           printf "MySQL is stopped...
    "
           exit
        else
           printf "Stoping MySQL...
    "
           ${cmd_path}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S ${mysql_sock} shutdown
       fi
    }
    
    
    function_restart_mysql()
    {
        printf "Restarting MySQL...
    "
        function_stop_mysql
        sleep 2
        function_start_mysql
    }
    
    case $1 in
    start)
        function_start_mysql
    ;;
    stop)
        function_stop_mysql
    ;;
    restart)
        function_restart_mysql
    ;;
    *)
        printf "Usage: ${mysql_basedir}/${port}/bin/mysqld {start|stop|restart}
    "
    esac
    
    [root@centos7 bin]# cp mysqld /mysql/3307/bin/
    [root@centos7 bin]# cp mysqld /mysql/3308/bin/
    [root@centos7 bin]# sed -i 's/3306/3307/g' /mysql/3307/bin/mysqld 
    [root@centos7 bin]# sed -i 's/3306/3308/g' /mysql/3308/bin/mysqld 
    [root@centos7 bin]# chown -R mysql:mysql /mysql
    [root@centos7 bin]# chmod +x /mysql/{3306,3307,3308}/bin/mysqld
    [root@centos7 bin]# /mysql/3306/bin/mysqld start
    Starting MySQL...
    [root@centos7 bin]# /mysql/3307/bin/mysqld start
    Starting MySQL...
    [root@centos7 bin]# /mysql/3308/bin/mysqld start
    Starting MySQL...
    [root@centos7 bin]# ss -nlt | grep 330*
    LISTEN     0      80          :::3306                    :::*                  
    LISTEN     0      80          :::3307                    :::*                  
    LISTEN     0      80          :::3308                    :::*  

     (6) 配置PATH变量,使用mysql客户端测试

    [root@centos7 bin]# cd /usr/local/mysql/
    [root@centos7 mysql]# echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
    [root@centos7 mysql]# . /etc/profile.d/mysql.sh
    #使用不同端口socket文件连接不同的实例
    [root@centos7 mysql]# mysql -S /mysql/3306/socket/mysql.sock 
    Welcome to the MariaDB monitor.  Commands end with ; or g.
    Your MariaDB connection id is 9
    Server version: 10.2.25-MariaDB-log MariaDB Server
    
    Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    MariaDB [(none)]> status
    --------------
    mysql  Ver 15.1 Distrib 10.2.25-MariaDB, for Linux (x86_64) using readline 5.1
    
    Connection id:        9
    Current database:    
    Current user:        root@localhost
    SSL:            Not in use
    Current pager:        stdout
    Using outfile:        ''
    Using delimiter:    ;
    Server:            MariaDB
    Server version:        10.2.25-MariaDB-log MariaDB Server
    Protocol version:    10
    Connection:        Localhost via UNIX socket
    Server characterset:    latin1
    Db     characterset:    latin1
    Client characterset:    utf8
    Conn.  characterset:    utf8
    UNIX socket:        /mysql/3306/socket/mysql.sock
    Uptime:            14 min 8 sec
    
    Threads: 8  Questions: 4  Slow queries: 0  Opens: 17  Flush tables: 1  Open tables: 11  Queries per second avg: 0.004
    --------------

     (7) 关闭数据库与修改数据库登录密码

    [root@centos7 mysql]# /mysql/3306/bin/mysqld stop  
    #关闭数据库时,因密码为空,所以关闭时提示输入密码,直接回车即可
    Stoping MySQL...
    Enter password: 
    [root@centos7 mysql]# ss -ntl | grep 330*    #可以看到是关闭了的
    LISTEN     0      80          :::3307                    :::*                  
    LISTEN     0      80          :::3308                    :::*  
    
    #修改数据库登录密码,注意,需要启动后执行下面命令
    [root@centos7 mysql]# mysqladmin -S /mysql/3307/socket/mysql.sock password 'centos'
    #以下已将密码修改为centos,记得还要改下启动脚本中的mysql_pwd的值
    [root@centos7 mysql]# vim /mysql/3307/bin/mysqld 
    [root@centos7 mysql]# grep '^mysql_pwd' /mysql/3307/bin/mysqld
    mysql_pwd="centos"
    [root@centos7 mysql]# /mysql/3307/bin/mysqld stop
    #有密码后,关闭进不提示输密码了
    Stoping MySQL...
    [root@centos7 mysql]# ss -ntl | grep 330*  #可以看到3307已经关闭了
    LISTEN     0      80          :::3308                    :::*                  
  • 相关阅读:
    mysql5.7版本centos8环境修改my.cnf配置文件
    mysql5.7使用r2dbc持久层框架性能飙升,一小时插入623万数据,平均每秒插入1723条
    mysql5.7决定SQL中IN条件是否走索引的成本计算,mysql中的index dive是在两个区间之间计算有多少条记录的方式
    mysql5.7的SQL执行成本计算,IO成本和CPU成本,单表查询成本,多表连接查询成本,执行成本决定mysql是否走索引,.OPTIMIZER_TRACE,cost_info
    mysql5.7基于块的嵌套循环连接(Block Nested-Loop Join)
    时间复杂度计算法
    mysql5.7索引合并:交集、并集,EXPLAIN例子
    mysql5.7分区表
    mysql5.7的随机IO和顺序IO
    MySQL5.7二级索引+回表的MRR优化技术
  • 原文地址:https://www.cnblogs.com/hovin/p/11956679.html
Copyright © 2020-2023  润新知