• MySQL多配置方式的多实例的部署


    安装MySQL需要注意的事项:

    选择MySQL的版本的建议:

    1)稳定版:选择开源的社区版的稳定版GA版本

    2)选择MySQL数据库GA版本发布后六个月以后得GA版本

    3)选择发布版本前后几个月没有大的修复BUG的版本。而不是有大量BUG修复的版本

    4)考虑开发人员开发程序使用的版本是否兼容你选的版本

    这里我装的MySQL的版本是5.6.23

    操作系统是centos 6.5

    首先删除系统自带的mysql
    rpm -qa | grep mysql
    rpm -e mysql   //普通删除模式
    rpm --nodeps -e mysql-libs-5.1.71  // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
     
    其实我现在做的不是多实例,我现在这么做是为了以后考虑,加入以后要做多实例的话
    mysql的多实例其实就是把data,sock,port指向不同的文件和端口
     
    1.首先安装cmake 编译器
    解压cmake
    tar -zvxf cmake-2.8.3.tar.gz
    配置编译
    cd cmake-2.8.3
    安装依赖包
    yum -y install gcc gcc-c++ ncurses-devel libaio-devel
    ./configure
    make
    make install
     
    然后安装一些依赖包
    yum -y install make gcc-c++ cmake bison-devel  ncurses-devel
     
    安装的思路:
    这里我们把软件的安装目录定位/usr/local/mysql,计算以后是多实例的部署,我们可以使用同一个安装程序(都选择/usr/local/mysql)
    创建目录并授权
    mkdir –p /data{3306,3307}/data   (存放数据文件,二进制日志,sock和pid文件)
    mkdir –p /data/{3306,3307}/logs  (存放错误日志和慢查询日志)
    chown –R mysql.mysql /data
    

    记得授权

    chown mysql.mysql /data -R

    然后我们下载MySQL的压缩包

    创建MySQL的用户

    groupadd mysql

    useradd -g mysql -s /sbin/nologin mysql

    tar xf mysql-5.6.23.tar.gz 
    cd mysql-5.6.23
    cmake . 
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql 
    -DMYSQL_DATADIR=/data/3306/data 
    -DSYSCONFDIR=/data/3306 
    -DWITH_MYISAM_STORAGE_ENGINE=1 
    -DWITH_INNOBASE_STORAGE_ENGINE=1 
    -DWITH_MEMORY_STORAGE_ENGINE=1 
    -DWITH_READLINE=1 
    -DMYSQL_UNIX_ADDR=/data/3306/data/mysql.sock 
    -DMYSQL_TCP_PORT=3306 
    -DENABLED_LOCAL_INFILE=1 
    -DWITH_PARTITION_STORAGE_ENGINE=1 
    -DEXTRA_CHARSETS=all 
    -DDEFAULT_CHARSET=utf8 
    -DDEFAULT_COLLATION=utf8_general_ci 
    -DENABLE_DOWNLOADS=1

    make

    这里慢慢的等吧,好长时间的

    make install


    在编译的时候看看有没有错误,有错误的时候,根据提示解决一下

    注意,这里我们重新编译的时候需要执行以下的操作

    make clean

    rm -f CMakeCache.txt

    解决完错误提示,重新编译一下

    make

    make install

    接着我们要做的就是初始化数据库了

    [root@kz-003 scripts]# pwd
    /usr/local/mysql/scripts
    /usr/local/mysql/bin/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/3306/data --user=mysql 
    
    注:在启动MySQL服务时,会按照一定次序搜索my.cnf,先在/etc目录下找,找不到则会搜索"$basedir/my.cnf",在本例中就是 /usr/local/mysql/my.cnf,这是新版MySQL的配置文件的默认位置!
    注意:在CentOS 6.4版操作系统的最小安装完成后,在/etc目录下会存在一个my.cnf,需要将此文件更名为其他的名字,如:/etc/my.cnf.bak,否则,该文件会干扰源码安装的MySQL的正确配置,造成无法启动。
    在使用"yum update"更新系统后,需要检查下/etc目录下是否会多出一个my.cnf,如果多出,将它重命名成别的。否则,MySQL将使用这个配置文件启动,可能造成无法正常启动等问题。
    

    接下来我们要做的就是创建配置文件了

    [root@kz-003 3306]# cat my.cnf 
    [client] 
    port = 3306
    socket = /data/3306/data/mysql.sock
     
    [mysqld]
    port=3306
    socket = /data/3306/data/mysql.sock
    pid-file = /data/3306/data/mysql.pid
    basedir = /usr/local/mysql
    datadir = /data/3306/data
    server-id=999
    log-bin=mysql-bin
    log-bin-index= mysql-bin.index
    
    innodb_buffer_pool_size = 512M
    join_buffer_size = 32M
    sort_buffer_size = 2M
    read_rnd_buffer_size = 2M
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
     
    # LOGGING
    log_error=/data/3306/logs/mysql-error.log   
    slow_query_log_file=/data/3306/logs/mysql-slow.log
    slow_query_log=1
    

    五、修改启动脚本

        可自行编写一个启动脚本,可参考/etc/init.d/portmap进行编写

        脚本思想:

    1、  启动mysql,使用mysqld_safe启动

     mysqld_safe--defaults-file=/data3306/my.cnf --user=mysql  
       --basedir=/usr/local/mysql--datadir=/data/3306/data  &
    

    2、  停止mysql,使用mysqladmin平滑停止

    mysqladmin –uroot –p123456 –S /data/3306/data/mysql.sock shutdown
    

    3、  重启mysql

        先停止,后启动。

    接下来我们要做的就是启动文件了

    [root@kz-003 3306]# cat mysqld 
    #!/bin/bash
    mysql_port=3306
    mysql_username="root"
    mysql_password="123456"
    function_start_mysql()
    {
    printf "Starting MySQL...
    "
    /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/${mysql_port}/my.cnf 2>&1 > /dev/null &
    }
    function_stop_mysql()
    {
    printf "Stoping MySQL...
    "
    /usr/local/mysql/bin/mysqladmin -u ${mysql_username} -p${mysql_password} -S /data/${mysql_port}/data/mysql.sock shutdown
    }
    function_restart_mysql()
    {
    printf "Restarting MySQL...
    "
    function_stop_mysql
    function_start_mysql
    }
    function_kill_mysql()
    {
    kill -9 $(ps -ef | grep 'bin/mysqld_safe' | grep ${mysql_port} | awk '{printf $2}')
    kill -9 $(ps -ef | grep 'libexec/mysqld' | grep ${mysql_port} | awk '{printf $2}')
    }
    case $1 in
    start)
    function_start_mysql;;
    stop)
    function_stop_mysql;;
    kill)
    function_kill_mysql;;
    restart)
    function_stop_mysql;;
    *)
    echo "Usage: /data/${mysql_port}/mysqld {start|stop|restart|kill}";;
    esac
    

    这里我们就可以启动数据库了,要记住这它可执行权限

    chmod a+x mysqld

    /data/3306/mysqld start

    这里我们更改一下root的密码

    [root@kz-003 3306]# /usr/local/mysql/bin/mysql -u root
    mysql> SET PASSWORD = PASSWORD('123456');
    或者使用下面的这个方法
    /usr/local/mysql/bin/mysqladmin -uroot password 'password' -S /data/dbdata_3306/mysql.sock 
    
    因为这里使用root用户启动停止数据库有点不安全,所以这里我们新建一个用户来起停数据库
    GRANT SHUTDOWN ON *.* TO 'admin'@'localhost' IDENTIFIED BY '123456'; 
    flush privileges;
    创建了admin帐号以后脚本的stop功能和restart功能就正常了!
    这里我们对应修改一下启动脚本中的账号密码
    

    在安装完成之后,我们删除匿名用户和空用户

    mysql> select user,host from mysql.user;
    +----------+-----------+
    | user     | host      |
    +----------+-----------+
    | Damocles | %         |
    | dba      | %         |
    | huamu    | %         |
    | root     | %         |
    | root     | 127.0.0.1 |
    | root     | ::1       |
    |          | kz-003    |
    | root     | kz-003    |
    |          | localhost |
    | admin    | localhost |
    | root     | localhost |
    +----------+-----------+
    11 rows in set (0.00 sec)
    
    mysql> delete from mysql.user where user='';
    mysql> delete from mysql.user where host='kz-003';
    mysql> delete from mysql.user where host='::1';
    
    mysql> select user,host from mysql.user;
    +----------+-----------+
    | user     | host      |
    +----------+-----------+
    | Damocles | %         |
    | dba      | %         |
    | huamu    | %         |
    | root     | %         |
    | root     | 127.0.0.1 |
    | admin    | localhost |
    | root     | localhost |
    +----------+-----------+
    7 rows in set (0.00 sec)

    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)

    更改环境变量

    vim /etc/profile 添加下面一行内容
    PATH=/usr/local/mysql/bin/:${PATH}
    source /etc/profile
    

     在配置环境变量的时候,我们把MySQL的环境变量放在前面

    管理的话,在本地都是采用 -S /data/dbdata_3308/mysql.sock,如果在远程可以通过不同的端口连接上去坐管理操作。其他的和单实例的管理没什么区别!

    参照文章:

    http://blog.chinaunix.net/uid-20639775-id-3438560.html

    http://crazy123.blog.51cto.com/1029610/1611887/

     
  • 相关阅读:
    Spring整合JMS-基于activeMQ实现(二)
    iOS 2D绘图详解(Quartz 2D)之概述
    iOS开发UI-利用Quartz2D 实现基本绘图(画三角形、矩形、圆、圆弧)
    Quart 2D 绘制图形简单总结
    IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)
    用 Swift 制作一个漂亮的汉堡按钮过渡动画
    CAShapeLayer和CAGradientLayer
    Swift计算属性
    Swift常用语法示例代码(二)
    Swift 中的指针使用
  • 原文地址:https://www.cnblogs.com/smail-bao/p/6141012.html
Copyright © 2020-2023  润新知