MySQL、MariaDB安装优化以及参数调整

  • A+
所属分类:MySQL

MySQL、MariaDB安装优化以及参数调整

MySQL的优点:
    企业高可用性、企业可扩展性
    MySQL InnoDB集群提供了一个集成的,本地的,你的数据库的HA溶液。
    它结合MySQL服务器组复制,MySQL的路由器,和MySQL的外壳,所以你不必依赖于外部工具,脚本或其他部件。
    MySQL企业的可扩展性,可以满足持续的性能和可扩展性的要求不断增加的用户,查询和数据加载。
    MySQL线程池提供了一个高效的线程处理模型,旨在减少在管理客户端连接的开销,和语句的执行线程。

安装MySQL
    安装方式:
        1、源代码:编译安装
        2、二进制格式的程序包:展开至特定路径,并经过简单配置后即可使用
        3、程序包管理器管理的程序包
            CentOS安装光盘
            项目官方:
            https://downloads.mariadb.org/mariadb/repositories/
        4、安装和使用MariaDB
            CentOS 7直接提供
            CentOS 6

MariaDB的特性
    MariaDB的特性:
        单进程,多线程
        插件式存储引擎:存储管理器有多种实现版本,功能和特性可能均略有差别;用户可根据需要灵活选择
        存储引擎也称之为“表类型”
    (1) 更多的存储的存储引擎
        MyISAM ==> Aria
        InnoDB ==> XtraDB
        Mysql5.5.8开始innoDB引擎是MYSQL默认引擎,InnoDB对比MyISAM的最大特点就是InnoDB支持事务
    (2) 诸多扩展和新特性
    (3) 提供了较多测试组件
    (4) 开源

MariaDB
    Centos7的MariaDB数据库包括两个包组:
        Mariadb mariadb-client
    mariadb组包括下面包:
        mariadb-server:mandatory package
        mariadb-bench:optional package
        mariadb-test:optional package
    mariadb-client组包括下面包:
        Mariadb:mandatory package
        MySQL-python:default package
        mysql-connector-odbc:default package
        libdbi-dbd-mysql:optional package
        mysql-connector-java:optional package
        perl-DBD-MySQL:optional package
    配置文件:
        /etc/my.cnf和/etc/my.cnf.d/ *.cnf

MariaDB安装
    安装
        yum groupinstall mariadb mariadb-client
        systemctl start mariadb
        systemctl enable mariadb
    提高安全性
        mysql_secure_installation
            设置数据库管理员root口令
            禁止root远程登录
            删除anonymous用户帐号
            删除test数据库
    MairaDB配置
        侦听3306/tcp端口可以在绑定有一个或全部接口IP上
        vim /etc/my.cnf
            [mysqld]加一行:
            skip-networking=1 关闭网络连接,只侦听本地客户端, 所有和服务器的交互都通过一个socket实现,socket的配置存放在/var/lib/mysql/mysql.sock) 可在/etc/my.cnf修改
        firewall-cmd   --permanent    --add-service=mysql
        firewall-cmd   --reload

通用二进制格式安装过程
    二进制格式安装过程
        (1) 准备用户
        groupadd -r -g 306 mysql
        useradd -r -g 306 -u 306 –m –d /app/data mysql
        (2) 准备数据目录
            以/app/data为例,建议使用逻辑卷
            chown mysql:mysql /app/data
        (3) 准备二进制程序
            tar xf mariadb-VERSION-linux-x86_64.tar.gz -C /usr/local
            cd /usr/local;ln -sv mariadb-VERSION mysql
            chown -R root:mysql /usr/local/mysql/
        (4) 准备配置文件
            配置格式:类ini格式,各程序由单个配置文件提供配[prog_name]
            配置文件查找次序:后面覆盖前面的配置文件
            /etc/my.cnf -->/etc/mysql/my.cnf --> --default-extra-file=/PATH/TO/CONF_FILE --> ~/.my.cnf
            mkdir /etc/mysql/
            cp support-files/my-large.cnf /etc/mysql/my.cnf
            [mysqld]中添加三个选项:
                datadir = /app/data
                innodb_file_per_table = on
                skip_name_resolve = on 禁止主机名解析,建议使用
        (5)创建数据库文件
            cd /usr/local/mysql/
            ./scripts/mysql_install_db --datadir=/app/data --user=mysql
        (6)准备日志文件
            touch /var/log/mysqld.log
            chown mysqld /var/log/mysqld.log
        (7)准备服务脚本,并启动服务
            cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
            chkconfig --add mysqld
            service mysqld start
        (8)安全初始化
            /user/local/mysql/bin/mysql_secure_installation

源码编译安装mariadb
    cmake . \
    -DCMAKE_INSTALL_PREFIX=/app/mysql \
    -DMYSQL_DATADIR=/mysqldb/ \
    -DSYSCONFDIR=/etc \
    -DMYSQL_USER=mysql \
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
    -DWITH_READLINE=1 \
    -DWITH_SSL=system \
    -DWITH_ZLIB=system \
    -DWITH_LIBWRAP=0 \
    -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
    -DDEFAULT_CHARSET=utf8 \
    -DDEFAULT_COLLATION=utf8_general_ci \
    -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
    -DENABLED_LOCAL_INFILE=1 \
    -DWITH_PARTITION_STORAGE_ENGINE=1 \
    -DWITH_DEBUG=0 \
    -DWITHOUT_MROONGA_STORAGE_ENGINE=1
    make && make install

MariaDB程序
    MariaDB的程序组成:
        Client:
            mysql:CLI交互式客户端程序
            mysqldump, mysqladmin...
        Server:
            mysqld_safe
            mysqld
            mysqld_multi:多实例
    服务器监听的两种socket地址:
        ip socket: 监听在tcp的3306端口,支持远程通信
        unix sock: 监听在sock文件上(/tmp/mysql.sock, /var/lib/mysql/mysql.sock),仅支持本机通信
        server: localhost, 127.0.0.1 自动使用unix sock


客户端工具
    命令行交互式客户端程序mysql选项:
        --print-defaults 默认选项
        --verbose 显示祥细信息
        -uUSERNAME: 用户名;默认为root
        -hHOST: 服务器主机; 默认为localhost
        -pPASSWORD:用户的密码;建议使用-p,默认为空密码
    mysql用户账号由两部分组成:
        'USERNAME'@'HOST'
        HOST用于限制此用户可通过哪些远程主机连接mysql服务
        支持使用通配符:
            % 匹配任意长度的任意字符
                172.16.0.0/255.255.0.0 或 172.16.%.%
            _ 匹配任意单个字符

执行命令
    运行mysql命令:默认空密码登录
        mysql>use mysql
        mysql>select user();查看当前用户
        mysql>SELECT User,Host,Password FROM user;
    安全初始化
        /usr/local/mysql/bin/mysql_secure_installatoin
    登录系统:
        mysql –uroot –p
    客户端命令:本地执行
        mysql> help
        每个命令都完整形式和简写格式
        mysql> status 或 \s
    服务端命令:通过mysql协议发往服务器执行并取回结果
        每个命令都必须命令结束符号;默认为分号
        SELECT VERSION();
avatar

发表评论

您必须登录才能发表评论!