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

[经验分享] 多实例Mysql5.5.x源码编译安装

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-1-19 09:30:45 | 显示全部楼层 |阅读模式
1、  建立Mysql账号

         [iyunv@mysql ~]# groupadd mysql

         [iyunv@mysql ~]# useradd -s /sbin/nologin -g mysql -M mysql

                   useradd参数说明:

                            -s/sbin/nologin 表示禁止该用户登录

                            -gmysql 指定属于mysql组

                            -M表示不创建用户家目录

         检查创建的用户:

                   [iyunv@mysql ~]# tail -1 /etc/passwd

                  mysql:x:500:500::/home/mysql:/sbin/nologin

2、配置安装环境

         安装依赖包:

                   [iyunv@mysql ~]# yum install gcc gcc-c++ make cmakencurses-devel bison perl lrzsz

         建立mysql软件存放目录:(可忽略)

                   [iyunv@mysql ~]# mkdir /home/tools                # mysql软件存放目录

         上传mysqla源码包

                   [iyunv@mysql tools]# ls

                  mysql-5.5.40.tar.gz

         安装目录:

                   [iyunv@mysql tools]# mkdir /usr/local/mysql –p

                   [iyunv@mysql tools]#chown –R mysql.mysql/usr/local/mysql

         数据目录:

                   [iyunv@mysql ~]# mkdir /data/{3306,3307}/data –p

                   [iyunv@mysql ~]#chown –R mysql.mysql /data

                   [iyunv@mysql ~]# tree /data/

                   /data                           #总的多实例根目录

             ├── 3306            #3306实例的目录

             │  └── data             #3306实例的数据文件目录

             └── 3307            #3307实例的目录

                 └── data            #3307实例的数据文件目录

3、编译安装Mysql

         解压:

                   [iyunv@mysql tools]# tar zxf mysql-5.5.40.tar.gz

         配置:

                   [iyunv@mysql mysql-5.5.40]# cmake \

                   > -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ \

                   > -DMYSQL_DATADIR= /data/ \

                   > -DDEFAULT_CHARSET=utf8 \

                   > -DDEFAULT_COLLATION=utf8_general_ci \

                   > -DEXTRA_CHARSETS=all \

                   > -DENABLED_LOCAL_INFILE=ON \

                   > -DWITH_INNOBASE_STORAGE_ENGINE=1 \

                   > -DWITH_FEDERATED_STORAGE_ENGINE=1 \

                   > -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

                   > -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \

                   > -DWITHOUT_PARTITION_STORAGE_ENGINE=1 \

                   > -DWITH_FAST_MUTEXES=1 \

                   > -DWITH_ZLIB=bundled \

                   > -DENABLED_LOCAL_INFILE=1 \

                   > -DWITH_READLINE=1 \

                   > -DWITH_EMBEDDED_SERVER=1 \

                   > -DWITH_DEBUG=0

         静态编译生成mysqld的执行文件:

                   [root@mysqlmysql-5.5.40]# make

         安装mysql

                   [root@mysqlmysql-5.5.40]# make install

4、获取mysql多实例的配置文件

         [iyunv@mysql mysql-5.5.40]# cpsupport-files/my-innodb-heavy-4G.cnf /data/3306/my.cnf

         [iyunv@mysql mysql-5.5.40]# cpsupport-files/my-innodb-heavy-4G.cnf /data/3307/my.cnf

         修改配置文件如下:(将会与3307不同的部分)

                  [iyunv@mysql~]# vim /data/3306/my.cnf

                   [iyunv@mysql ~]# grep ^[a-z] /data/3306/my.cnf

                   port           =3306

                   socket                =/data/3306/tmp/mysql.sock

                   port           =3306

                   socket                =/data/3306/tmp/mysql.sock

                   datadir              =/data/3306/data

                   pid-file      =/data/3306/mysql.pid

                   log-bin=/data/3306/mysql-bin

                   long_query_time = 2

                   server-id = 1

                   log-error=/data/3306/mysql_3306.err

                   pid-file=/data/3306/mysql.pid

         与3306实例配置文件不同之处:

                   [iyunv@mysql ~]# vim /data/3307/my.cnf

                   [iyunv@mysql ~]# grep ^[a-z] /data/33067/my.cnf

                  port           = 3307

                  socket                = /data/3307/tmp/mysql.sock

                  port           = 3307

                  socket                = /data/3307/tmp/mysql.sock

                  datadir              = /data/3307/data

                  pid-file      = /data/3307/mysql.pid

                  #log-bin=/data/3307/mysql-bin

                  #long_query_time= 2

                  server-id = 3

                   log-error=/data/3307/mysql_3307.err

                   pid-file=/data/3307/mysql.pid

5、修改mysql多实例的启动脚本(引用他人脚本)

[iyunv@mysql 3307]# vim/data/3306/mysqld 此脚本cp一份至/data/3307目录下,并更改端口即可

#!/bin/sh

#init

port=3306                  /data/3307/mysqld启动脚本端口为3307,此处需更改端口

mysql_user="root"

mysql_pwd=""

CmdPath="/usr/local/mysql/bin"



#startup function

function_start_mysql()

{

    printf "Starting MySQL...\n"

    /bin/sh ${CmdPath}/mysqld_safe--defaults-file=/data/${port}/my.cnf 2>&1 > /dev/null &

}

#stop function

function_stop_mysql()

{

    printf "Stoping MySQL...\n"

    ${CmdPath}/mysqladmin -u ${mysql_user}-p${mysql_pwd} -S /data/${port}/tmp/mysql.sock shutdown

}

#restart function

function_restart_mysql()

{

    printf "Restarting MySQL...\n"

    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: /data/${port}/mysql{start|stop|restart}\n"

esac

         两个实例启动脚本比较:

                   [iyunv@mysql 3307]# diff /data/3306/mysqld/data/3307/mysqld

                   3c3

                   < port=3306

                   ---

                   > port=3307

6、配置mysql全局使用命令:

         [iyunv@mysql ~]# echo 'exportPATH=/usr/local/mysql/bin:$PATH' >> /etc/profile

         [iyunv@mysql ~]# source /etc/profile

7、mysql数据库启动

         a授权

                   [iyunv@mysql ~]# chown -R mysql.mysql /data/      (此步为新cp进来的musqld授权)

                   [iyunv@mysql ~]# chmod +x /data/3306/mysqld

                   [iyunv@mysql ~]# chmod +x /data/3307/mysqld

         b初始化数据库

                   [iyunv@mysql ~]# cd /usr/local/mysql/scripts (和5.1所在的路径不同,不在mysql bin路径下)

                   [iyunv@mysql scripts]# ./mysql_install_db--basedir=/usr/local/mysql --datadir=/data/3306/data --user=mysql

                   [iyunv@mysql scripts]# ./mysql_install_db--basedir=/usr/local/mysql --datadir=/data/3307/data --user=mysql

         c启动mysql

                   [iyunv@mysql ~]# /data/3306/mysqld start

                   Starting MySQL...

                   [iyunv@mysql ~]# /data/3307/mysqld start

                   Starting MySQL...

         d查看启动结果:

                   [iyunv@mysql ~]# netstat -ntulp | grep 330

                   tcp       0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      18516/mysqld      

                   tcp       0      0 0.0.0.0:3307                0.0.0.0:*                   LISTEN      19193/mysqld

8、登录mysql数据库

         [iyunv@mysql ~]# mysql -uroot -P 3306 -S/data/3306/tmp/mysql.sock –p (3307实例更换端口即可,用上述脚本安装,密码为空,直接回车即可登录)

         修改mysql登录密码:

                   [iyunv@mysql ~]# mysqladmin -uroot -S/data/3306/tmp/mysql.sock password q.123456




运维网声明 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.yunweiku.com/thread-41030-1-1.html 上篇帖子: mysql case when用户示例 下篇帖子: mysql 5.5通用二进制包安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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