从零开始的Linux运维屌丝之路,资源免费分享平台   运维人员首选:简单、易用、高效、安全、稳定、社区活跃的开源软件

编译安装多实例 MySQL 5.5.62

发布:蔺要红08-31分类: MYSQL


同一台服务器 安装一个mysql 通过不同的配置文件/使用不同的socket/启动多个实例/多个端口提供服务/

官方推荐mysqld_multi部署单机多实例: 一个配置文件配置多实例,同一台机器上运行的多个mysqld进程,这些进程使用不同的socket文件并监听在不同的端口上。mysqld_multi可以批量启动、关闭、或者报告这些mysqld进程的状态

 
# 启动
mysqld_safe --defaults-file=/data/3309/my.cnf 2>&1 > /dev/null &
mysqld_safe --defaults-file=/data/3309/my.cnf  >/dev/null 2>&1  & 
# 关闭
mysqladmin -u root -p111111 -S /data/3309/mysql.sock shutdown​​​​​​​

【mysqld_safe】:相当于多了一个守护进程,mysqld挂了会自动把mysqld进程拉起来 
​​​​​​​
1.可以读取的配置部分[mysqld],[server],[myslqd_safe], 为了兼容mysql_safe也会读取[safe_mysqld]中的配置
2.调用的mysqld是可以在[mysqld_safe]中用-mysqld, --mysqld-version​​​​​​​


安装mysql
yum install gcc gcc-c++ bzip2 lsof openssl-devel -y
yum install autoconf ncurses-devel libaio-devel cmake -y
# hosts解析/有的小版本不做hosts解析会报错
[ "$(hostname -i | awk '{print $1}')" != "127.0.0.1" ] && sed -i "s@127.0.0.1.*localhost@&\n127.0.0.1 $(hostname)@g" /etc/hosts
useradd mysql -s  /sbin/nologin -M
wget https://mirrors.linyaohong.com/src/mysql/mysql-5.5.62.tar.gz
tar zxf mysql-5.5.62.tar.gz
cd mysql-5.5.62
cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.5.62 \
-DMYSQL_DATADIR=/application/mysql-5.5.62/data \
-DMYSQL_UNIX_ADDR=/application/mysql-5.5.62/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1  \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DWITH_ZLIB=bundled \
-DWITH_SSL=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_DEBUG=0 \
-DENABLE_DTRACE=0 \
-DCMAKE_EXE_LINKER_FLAGS='-ljemalloc'

make && make install
cd ..
ln  -s /application/mysql-5.5.62/  /application/mysql
ln -s /application/mysql/bin/*  /usr/local/bin/

安装3306实例(如果本机有3306实例,则从3307开始)
 
mkdir -p /data/3306/data
chown -R mysql:mysql  /data/
wget -O /data/3306/my.cnf  https://mirrors.linyaohong.com/conf/mysql/3306/my.cnf
wget -O /data/3306/mysql  https://mirrors.linyaohong.com/conf/mysql/3306/mysql
# 手动创建错误日志(和配置文件的名字路劲要一直)
touch /data/3306/3306_error.log
chown  mysql /data/3306/3306_error.log 
chown mysql /data/3306/mysql 
chmod 700 /data/3306/mysql
/application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/data/3306/data/  --user=mysql 
echo "/data/3306/mysql start" >>/etc/rc.local 
chmod +x /etc/rc.local
/data/3307/mysql start

mysqladmin -u root password 111111 -S /data/3306/mysql.sock 
mysql -uroot -p111111  -S /data/3307/mysql.sock -e "drop database test;"
mysql -uroot -p111111  -S /data/3306/mysql.sock -e "delete from mysql.user where host='::1';"
mysql -uroot -p111111  -S /data/3306/mysql.sock -e "delete from mysql.user where user='';"

安装3307实例
 
mkdir -p /data/3307/data
chown -R mysql:mysql  /data/3307
wget -O /data/3307/my.cnf  https://mirrors.linyaohong.com/conf/mysql/3307/my.cnf
wget -O /data/3307/mysql  https://mirrors.linyaohong.com/conf/mysql/3307/mysql
# 手动创建错误日志(和配置文件的名字路劲要一直)
touch /data/3307/3307_error.log
chown  mysql /data/3307/3307_error.log 
chown mysql /data/3307/mysql 
chmod 700 /data/3307/mysql
/application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/data/3307/data/  --user=mysql 
echo "/data/3307/mysql start" >>/etc/rc.local 
chmod +x /etc/rc.local
/data/3307/mysql start

mysqladmin -u root password 111111 -S /data/3307/mysql.sock 
mysql -uroot -p111111  -S /data/3307/mysql.sock -e "delete from mysql.user where host='::1';"
mysql -uroot -p111111  -S /data/3307/mysql.sock -e "delete from mysql.user where user='';"
mysql -uroot -p111111  -S /data/3307/mysql.sock -e "drop database test;"

安装3308实例
 
mkdir -p /data/3308/data
chown -R mysql:mysql  /data/3308
wget -O /data/3308/my.cnf  https://mirrors.linyaohong.com/conf/mysql/3308/my.cnf
wget -O /data/3308/mysql  https://mirrors.linyaohong.com/conf/mysql/3308/mysql
# 手动创建错误日志(和配置文件的名字路劲要一直)
touch /data/3308/3308_error.log
chown  mysql /data/3308/3308_error.log 
chown mysql /data/3308/mysql 
chmod 700 /data/3308/mysql
/application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/data/3308/data/  --user=mysql 
echo "/data/3308/mysql start" >>/etc/rc.local 
chmod +x /etc/rc.local
/data/3308/mysql start

mysqladmin -u root password 111111 -S /data/3308/mysql.sock 
mysql -uroot -p111111  -S /data/3308/mysql.sock -e "delete from mysql.user where host='::1';"
mysql -uroot -p111111  -S /data/3308/mysql.sock -e "delete from mysql.user where user='';"
mysql -uroot -p111111  -S /data/3308/mysql.sock -e "drop database test;"

编译参数说明
 
cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.5.62    # 安装目录
-DMYSQL_DATADIR=/application/mysql-5.5.62/data              # 数据库存放目录
-DMYSQL_UNIX_ADDR=/application/mysql-5.5.62/tmp/mysql.sock  # Unix socket 文件路径
-DDEFAULT_CHARSET=utf8                  # 使用utf8字符                                 
-DDEFAULT_COLLATION=utf8_general_ci     # 校验字符
-DWITH_EXTRA_CHARSETS=all               # 安装所有扩展字符集
-DWITH_INNOBASE_STORAGE_ENGINE=1        # 安装 innodb 存储引擎 
-DWITH_FEDERATED_STORAGE_ENGINE=1       # 安装 FEDERATED 存储引擎 
-DWITH_BLACKHOLE_STORAGE_ENGINE=1       # 安装 blackhole 存储引擎
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1      # 除去对某种引擎的支持 EXAMPLE
-DWITH_PARTITION_STORAGE_ENGINE=1       # 安装数据库分区 
-DWITH_MYISAM_STORAGE_ENGINE=1          # 安装 myisam 存储引擎
-DWITH_READLINE=1                       # 快捷键功能
-DWITH_ZLIB=bundled                     # zlib库
-DWITH_SSL=bundled                      # 支持 SSL
-DENABLED_LOCAL_INFILE=1                # 启用加载本地数据/允许从本地导入数据
-DWITH_EMBEDDED_SERVER=1                # 嵌入式服务器
-DENABLE_DOWNLOADS=1 
-DWITH_DEBUG=0                          # 调试模式/默认禁用
-DENABLE_DTRACE=0                       # 是否包括DTrace支持
-DCMAKE_EXE_LINKER_FLAGS='-ljemalloc'   # 使用ljemalloc优化MySQL内存管理(前提是需要安装)


# 单实例可以指定下配置文件目录
-DSYSCONFDIR=/etc  #系统配置目录
 
温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,如有侵权我会在24小时之内删除!

欢迎使用手机扫描访问本站