zoukankan      html  css  js  c++  java
  • Mariadb安装配置

    一 源码二进制安装Mariadb

    1.1.1 准备所需用户

    [root@mysql-master ~]# useradd -r mysql -s /sbin/nologin
    [root@mysql-master ~]# id mysql
    uid=996(mysql) gid=994(mysql) 组=994(mysql)
    

    1.1.2 解压创建相应目录

    [root@mysql-master ~]# tar xf mariadb-10.2.22-linux-x86_64.tar.gz -C /usr/local/
    [root@mysql-master ~]# cd /usr/local/
    [root@mysql-master local]# ln -s mariadb-10.2.22-linux-x86_64/ mysql
    [root@mysql-master local]# chown -R mysql.mysql mysql/
    
    [root@mysql-master local]# cd mysql/bin/
    [root@mysql-master bin]# pwd
    /usr/local/mysql/bin
    [root@mysql-master bin]# echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
    [root@mysql-master bin]# . /etc/profile.d/mysql.sh 
    
    [root@mysql-master bin]# mkdir /data/mysqldb -p
    [root@mysql-master bin]# chown -R mysql.mysql /data/mysqldb/
    [root@mysql-master bin]# chmod 770 /data/mysqldb/
    

    1.1.3 初始化数据库

    [root@mysql-master mysql]# scripts/mysql_install_db --datadir=/data/mysqldb --user=mysql
    Installing MariaDB/MySQL system tables in '/data/mysqldb' ...
    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 mysql-master 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/mysqldb'
    
    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/
    

    1.1.4 配置主配置文件,以及启动文件

    # 拷贝模板文件
    [root@mysql-master support-files]# pwd
    /usr/local/mysql/support-files
    [root@mysql-master support-files]# cp my-huge.cnf /etc/my.cnf
    cp:是否覆盖"/etc/my.cnf"? y
    # 修改数据库存储位置
    [root@mysql-master support-files]# vim /etc/my.cnf
    [mysqld]
    datadir=/data/mysqldb
    
    # 拷贝启动文件
    [root@mysql-master support-files]# cp mysql.server /etc/init.d/mysqld
    [root@mysql-master support-files]# chkconfig --add mysqld
    [root@mysql-master support-files]# chkconfig --list
    mysqld         	0:关	1:关	2:开	3:开	4:.5:开	6:关
    netconsole     	0:关	1:关	2:关	3:关	4:.5:关	6:关
    network        	0:关	1:关	2:开	3:开	4:.5:开	6:关
    # 启动服务
    [root@mysql-master support-files]# service mysqld start
    Starting mysqld (via systemctl):                   [  确定  ]
    
    
    [root@mysql-master support-files]# ls /data/mysqldb/aria_log.00000001  mysql
    aria_log_control   mysql-bin.000001
    ib_buffer_pool     mysql-bin.index
    ibdata1            mysql-master.err
    ib_logfile0        mysql-master.pid
    ib_logfile1        performance_schema
    ibtmp1             test
    multi-master.info
    

    1.1.5 初始化安全配置

    [root@mysql-master support-files]# mysql_secure_installation 
    

    二 多实例配置

      2.1.1 创建所需文件夹

    mkdir /date/{3307,3308}/{etc,socket,pid,log,data} -p
    chown -R mysql.mysql /date/
    
    tree /date
    /date
    ├── 3307
    │   ├── data
    │   ├── etc
    │   ├── log
    │   ├── pid
    │   └── socket
    └── 3308
    ├── data
    ├── etc
    ├── log
    ├── pid
    └── socket
    

      2.1.2 初始化数据库

    /usr/local/mysql/scripts/mysql_install_db --datadir=/date/3307/data/ --user=mysql --basedir=/usr/local/mysql
    
    # basedir获取路径
    # mysql -uroot -p123456 -e 'show variables like "basedir"'
    +---------------+------------------+
    | Variable_name | Value            |
    +---------------+------------------+
    | basedir       | /usr/local/mysql |
    +---------------+------------------+
    

      2.1.3 创建配置文件

    [root@mysql-master ~]# cp /etc/my.cnf /date/3307/etc/
    [root@mysql-master ~]# vim /date/3307/etc/my.cnf 
    [client]
    #password       = your_password
    port            = 3307
    socket          = /date/3307/socket/mysql.sock
    [mysqld]
    port            = 3307
    datadir=/date/3307/data
    socket          = /date/3307/socket/mysql.sock
    [mysqld_safe]
    log-error=/date/3307/log/mariadb.log
    pid-file=/date/3307/pid/mariadb.pid
    
    # 按需修改
    [root@mysql-master ~]# cp /date/3307/etc/my.cnf /date/3308/etc/my.cnf
    

      2.1.4 编辑启动脚本

    # cat mysqld 
    #!/bin/bash
    
    port=3307
    mysql_user="root"
    mysql_pwd=""
    cmd_path="/usr/local/mysql/bin"
    mysql_basedir="/date"
    mysql_sock="${mysql_basedir}/${port}/socket/mysql.sock"
    
    function_start_mysql() {
        if [ ! -e "$mysql_sock" ];then
          printf "Start 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 "Restart 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

      2.1.5 测试

    [root@mysql-master 3307]# sh mysqld start
    Start Mysql....
    [root@mysql-master 3307]# ss -lnt
    State       Recv-Q Send-Q                                        Local Address:Port                                                       Peer Address:Port              
    LISTEN      0      128                                                       *:111                                                                   *:*                  
    LISTEN      0      128                                                       *:22                                                                    *:*                  
    LISTEN      0      100                                               127.0.0.1:25                                                                    *:*                  
    LISTEN      0      80                                                       :::3306                                                                 :::*                  
    LISTEN      0      80                                                       :::3307                                                                 :::*                  
    LISTEN      0      128                                                      :::111                                                                  :::*                  
    LISTEN      0      128                                                      :::22                                                                   :::*                  
    LISTEN      0      100                                                     ::1:25                                                                   :::* 
    

      

      

       

  • 相关阅读:
    移动端IM系统的协议选型:UDP还是TCP?
    【原创】新手入门一篇就够:从零开发移动端IM
    【原创】轻量级即时通讯技术MobileIMSDK:Android客户端开发指南
    【原创】轻量级移动设备即时通讯技术MobileIMSDK的常见问题解答
    【原创】轻量级移动端即时通讯技术 MobileIMSDK 发布了
    实时视频直播客户端技术盘点:Native、HTML5、WebRTC、微信小程序
    腾讯技术分享:腾讯是如何大幅降低带宽和网络流量的(图片压缩篇)
    微信团队分享:微信移动端的全文检索多音字问题解决方案
    IM开发基础知识补课(四):正确理解HTTP短连接中的Cookie、Session和Token
    腾讯技术分享:Android版手机QQ的缓存监控与优化实践
  • 原文地址:https://www.cnblogs.com/yanshicheng/p/10403850.html
Copyright © 2011-2022 走看看