设为首页 收藏本站
查看: 320|回复: 0

[经验分享] MariaDB多实例

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-6-17 09:16:21 | 显示全部楼层 |阅读模式
        什么是mariadb
         
        MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB(英语:XtraDB)来代替MySQL的InnoDB。 MariaDB由MySQL的创始人Michael Widenius(英语:Michael Widenius)主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria的名字。(来自百度百科)
        多实例介绍
         
        简单的说,就是在一台机器上开启多个不同的服务端口(如:3306,3307),运行多个mysql服务进程,这些服务进程通过不同的socket监听不同的服务端口来提供各自的服务。
         
        搭建环境
        操作系统:CentOS 6.4
        Mariadb:5.5.25
        PORT:3307,3308
         
         
        安装单实例mariadb
        [iyunv@test60~]#wget  http://www.cmake.org/files/v2.8/cmake-2.8.5.tar.gz
        [iyunv@test60~]#wget  http://dl.mysql.cn/mariadb/5.5/mariadb-5.5.25.tar.gz
        安装cmake
        [iyunv@test60~]# tar xzvf cmake-2.8.5
        [iyunv@test60~]# cd cmake-2.8.5
        [iyunv@test60~]#./bootstrap
        [iyunv@test60~]#make
        [iyunv@test60~]#make install
        [iyunv@test60~]#cd ..
         
        安装mariadb
        [iyunv@test60~]# useradd mysql –s /sbin/nologin –M
        [iyunv@test60~]# yum install
        [iyunv@test60~]# yum install ncurses-devel –y
        [iyunv@test60~]# yum install libaio-devel –y
        [iyunv@test60~]# tar xzvf mariadb-5.5.25.tar.gz
        [iyunv@test60~]# cd mariadb-5.5.25
        [root@test60mariadb-5.5.25]# cmake .\
        -DCMAKE_INSTALL_PREFIX=/usr/local/mariamysql\
        -DWITH_INNOBASE_STORAGE_ENGINE=1\
        -DWITH_FEDERATED_STORAGE_ENGINE=1\
        -DENABLED_LOCAL_INFILE=1\
        -DEXTRA_CHARSETS=all\
        -DDEFAULT_CHARSET=utf8\
        -DDEFAULT_COLLATION=utf8_general_ci\
        -DWITH_DEBUG=0\
        -DBUILD_CONFIG=mysql_release\
        -DFEATURE_SET=community\
        -DWITH_EMBEDDED_SERVER=OFF
        [root@test60mariadb-5.5.25]#make -j 4
        [root@test60mariadb-5.5.25]#make install
         
        创建目录
        [iyunv@test60~]#mkdir -p /data/{3306,3307}/data
        [iyunv@test60~]# cd /data
        [iyunv@test60~]#chown –R mysql.mysql 3007
        [iyunv@test60~]#chown –R mysql.mysql 3008
         
        创建配置文件my.cnf
        [iyunv@test60~]#cd /data/3307
        [iyunv@test60~]#vim my.cnf
        内容如下:
        [client]
        port            = 3307
        socket          = /data/3307/mysql.sock
        [mysql]
        no-auto-rehash
        [mysqld]
        user    = mysql
        port    = 3307
        socket  = /data/3307/mysql.sock
        basedir =/usr/local/mariamysql
        datadir =/data/3307/data
        open_files_limit    = 1024
        back_log= 600
        max_connections= 800
        max_connect_errors= 3000
        table_cache= 614
        external-locking= FALSE
        max_allowed_packet=8M
        sort_buffer_size= 1M
        join_buffer_size= 1M
        thread_cache_size= 100
        thread_concurrency= 2
        query_cache_size= 2M
        query_cache_limit= 1M
        query_cache_min_res_unit= 2k
        #default_table_type= InnoDB
        #thread_stack= 192K
        ##transaction_isolation= READ-COMMITTED
        #tmp_table_size= 2M
        #max_heap_table_size= 2M
        #long_query_time= 1
        ##log_long_format
        ##log-error= /data/3307error.log
        ##log-slow-queries= /data/3307slow.log
        #pid-file= /data/3307mysql.pid
        #log-bin= /data/3307mysql-bin
        #relay-log= /data/3307relay-bin
        #relay-log-info-file= /data/3307relay-log.info
        #binlog_cache_size= 1M
        #max_binlog_cache_size= 1M
        #max_binlog_size= 2M
        #expire_logs_days= 7
        #key_buffer_size= 16M
        #read_buffer_size= 1M
        #read_rnd_buffer_size= 1M
        #bulk_insert_buffer_size= 1M
        ##myisam_sort_buffer_size= 1M
        ##myisam_max_sort_file_size= 10G
        ##myisam_max_extra_sort_file_size= 10G
        ##myisam_repair_threads= 1
        ##myisam_recover
        #lower_case_table_names= 1
        #skip-name-resolve
        #slave-skip-errors= 1032,1062
        #replicate-ignore-db=mysql
        #server-id= 1
        #innodb_additional_mem_pool_size= 4M
        #innodb_buffer_pool_size= 32M
        #innodb_data_file_path= ibdata1:128M:autoextend
        #innodb_file_io_threads= 4
        #innodb_thread_concurrency= 8
        #innodb_flush_log_at_trx_commit= 2
        #innodb_log_buffer_size= 2M
        #innodb_log_file_size= 4M
        #innodb_log_files_in_group= 3
        #innodb_max_dirty_pages_pct= 90
        #innodb_lock_wait_timeout= 120
        #innodb_file_per_table= 0
        #[mysqldump]
        #quick
        #max_allowed_packet= 2M
        #[mysqld_safe]
        #log-error=/data/3307mysql_oldboy3306.err
        #pid-file=/data/3307mysqld.pid
         
        创建启动脚本
        [iyunv@test60~]#cd /data/3307
        [iyunv@test60~]#vim mariadb
        #!/bin/sh
        port=3307
        mysql_user="root"
        mysql_pwd=""
        CmdPath="/usr/local/mariamysql/bin"
        mysql_sock="/data/${port}/mysql.sock"
         
        #startupfunction
        function_start_mysql()
        {
        if [ ! -e"$mysql_sock" ];then
        printf"Starting MariaMySQL...\n"
        /bin/sh${CmdPath}/mysqld_safe --defaults-file=/data/${port}/my.cnf 2>&1 >/dev/null &
        else
        printf"MariaMySQL is running...\n"
        exit
        fi
        }
        #stopfunction
        function_stop_mysql()
        {
        if [ ! -e"$mysql_sock" ];then
        printf"MariaMySQL is stopped...\n"
        exit
        else
        printf"Stoping MariaMySQL...\n"
        ${CmdPath}/mysqladmin-u ${mysql_user} -p${mysql_pwd} -S /data/${port}/mysql.sock shutdown
        fi
        }
        #restartfunction
        function_restart_mysql()
        {
        printf"Restarting MariaMySQL...\n"
        function_stop_mysql
        sleep 2
        function_start_mysql
        }
        case $1in
        start)
        function_start_mysql
        ;;
        stop)
        function_stop_mysql
        ;;
        restart)
        function_restart_mysql
        ;;
        *)
        printf"Usage: /data/${port}/mysql {start|stop|restart}\n"
        esac
         
        [iyunv@test60~]#chmod 700 mariadb
         
        数据库初始化
        /usr/local/mariamysql/scripts/mysql_install_db--basedir=/usr/local/mariamysql/ --datadir=/data/3307/data --user=mysql
         
        启动端口为3307的数据库实例
        [iyunv@test60~]#/data/3307/mariadb start
        检查是否正常监听
        [iyunv@test60~]# lsof -i :3307
        COMMAND  PID  USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
        mysqld  7261 mysql   14u  IPv4 7939256      0t0  TCP *:opsession-prxy (LISTEN)
        测试是否能登陆
        [iyunv@test60~]# /usr/local/mariamysql/bin/mysql -u root -p -S /data/3307/mysql.sock
         
        增加mariadb实例(端口:3308)
        [iyunv@test60~]# cd /data/3308
        [iyunv@test603308]# cp ../3307/my.cnf .
        [iyunv@test603308]# cp ../3307/mariadb .
        [iyunv@test603308]# sed -i 's#3307#3308#g' my.cnf
        [iyunv@test603308]# sed -i 's#3307#3308#g' mariadb
        [iyunv@test603308]#chown –R mysql.mysql /data/3308
        [iyunv@test603308]#chmod 700 mariadb
        [iyunv@test603308]# /usr/local/mariamysql/scripts/mysql_install_db--basedir=/usr/local/mariamysql/ --datadir=/data/3307/data --user=mysql
        [iyunv@test603308]#/data/3308/mariadb start
        [iyunv@test603308]# /usr/local/mariamysql/bin/mysql -u root -p -S /data/3307/mysql.sock
         
        [iyunv@test603308]# netstat -lntp | grep 330
        tcp        0      0 0.0.0.0:3307                0.0.0.0:*                   LISTEN      7261/mysqld         
        tcp        0      0 0.0.0.0:3308                0.0.0.0:*                   LISTEN      13824/mysqld        
         
         


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-20652-1-1.html 上篇帖子: MySQL行锁深入研究 下篇帖子: mysql中count,GROUP BY的用法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表