暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

史上最强Mysql5.7源码安装讲解

MySQL数据库运维技术栈 2021-05-07
623

今天给小伙伴们介绍一下Mysql5.7源码安装,在安装过程中还是碰到了一些问题,下面介绍安装步骤时,会告诉大家问题在哪儿,怎么解决的,废话不多说,下面就可以说说安装全过程

  1. 创建用户

groupadd mysql
useradd -d home/mysql -g mysql mysql
echo "mysql123" | passwd --stdin mysql

复制
  1. 修改limit参数值

echo "* soft nofile 65536" >> etc/security/limits.conf
echo "* hard nofile 65536" >> etc/security/limits.conf

复制
  1. 安装依赖包

yum install -y  cmake gcc gcc-c++ ncurses-devel bison zlib libxml openssl openssl-devel

复制
  1. 创建目录

mkdir -p u02/mysql
mkdir -p u02/conf
mkdir -p u02/data/3308
mkdir -p u02/log/3308/iblog
mkdir -p u02/log/3308/binlog
mkdir -p u02/run/3308
mkdir -p u02/tmp/3308

chown -R mysql:mysql u02
chmod -R 755 u02

复制

5.下载源码包

wget http://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.26.tar.gz

复制
  1. 源码编译安装

cmake \
-DCMAKE_INSTALL_PREFIX=/u02/mysql \
-DMYSQL_DATADIR=/u02/data/3308 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_SSL=yes \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DMYSQL_UNIX_ADDR=/u02/run/3308/mysql.sock \
-DMYSQL_TCP_PORT=3308 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost \
-DSYSCONFDIR=/etc \
-DWITH_READLINE=on

复制

这里对每个编译参数都解释一下其作用

##安装目录
DCMAKE_INSTALL_PREFIX=/u02/mysql
##数据存放目录
DMYSQL_DATADIR=/u02/data/3308
##默认数据库字符集
DDEFAULT_CHARSET=utf8
##新建数据库默认字符集
DDEFAULT_COLLATION=utf8_general_ci
##安装所有扩展字符集
DEXTRA_CHARSETS=all
##支持 SSL
DWITH_SSL=yes
##是否建立了嵌入式服务器
DWITH_EMBEDDED_SERVER=1 \
##是否允许本地文件导入
DENABLED_LOCAL_INFILE=1 \
##存储引擎
DWITH_MYISAM_STORAGE_ENGINE=1 \
DWITH_INNOBASE_STORAGE_ENGINE=1 \
DWITH_ARCHIVE_STORAGE_ENGINE=1 \
DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
DWITH_FEDERATED_STORAGE_ENGINE=1 \
DWITH_PARTITION_STORAGE_ENGINE=1 \
##sock文件路径
DMYSQL_UNIX_ADDR=/u02/run/3308/mysql.sock
##数据库访问端口
DMYSQL_TCP_PORT=3308 \
##MySQL5.7.5必须要开启Boost库
DDOWNLOAD_BOOST=1 \
##Boost库文件存放路径
DWITH_BOOST=/usr/local/boost \
##mysql配置文件目录
DSYSCONFDIR=/etc \
##启用readline库支持
DWITH_READLINE=on

复制

在这里要提醒一下,因为安装的mysql版本是5.7,如果安装的服务器不能联网,需要提前下载Boost库包,如果不下载,编译是无法通过的,下载方法如下所示

http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz

复制

下载完成,放到编译参数指定的目录位置即可,DWITH_BOOST=/usr/local/boost,然后开始进行make和make install

  1. 设置配置参数,这里提供的参数已经包含配置主从复制的参数,按照下面的参数启动数据库,非常简单就可以搭建好主从复制

cd u02/conf
vi my3308.cnf
----------------------------------------------------------

[client]
port=3308
socket=/u02/run/3308/mysql.sock

[mysql]
pid_file=/u02/run/3308/mysqld.pid

[mysqld]
autocommit=1
general_log=off
transaction_isolation = READ-COMMITTED

gtid-mode=on
log-slave-updates=true
enforce-gtid-consistency=true
master-info-repository=TABLE
relay-log-info-repository=TABLE
sync-master-info=1000
binlog-checksum=CRC32
master-verify-checksum=1
slave-sql-verify-checksum=1
binlog-rows-query-log-events=1

# system
lower_case_table_names=1
basedir=/u02/mysql
datadir=/u02/data/3308
max_allowed_packet=1g
max_connections=1000
max_user_connections=800
open_files_limit=65535
pid_file=/u02/run/3308/mysqld.pid
port=3308
server_id=3308
skip_name_resolve=ON
socket=/u02/run/3308/mysql.sock
tmpdir=/u02/tmp/3308
thread_cache_size=512
table_open_cache=2048
table_open_cache_instances=2
table_definition_cache=2048

#binlog
log_bin=/u02/log/3308/binlog/binlog
binlog_cache_size=32768
binlog_format=row
expire_logs_days=7
log_slave_updates=ON
max_binlog_cache_size=2G
max_binlog_size=500M
sync_binlog=100

#logging
log_error=/u02/log/3308/error.log
slow_query_log_file=/u02/log/3308/slow.log
log_queries_not_using_indexes=0
slow_query_log=1
log_slave_updates=ON
log_slow_admin_statements=1
long_query_time=1

#relay
relay_log=/u02/log/3308/relaylog
relay_log_index=/u02/log/3308/relay.index
relay_log_info_file=/u02/log/3308/relay-log.info

#slave
slave_load_tmpdir=/u02/tmp/3308
slave_skip_errors=OFF

#innodb
innodb_data_home_dir=/u02/log/3308/iblog
innodb_log_group_home_dir=/u02/log/3308/iblog
innodb_adaptive_flushing=ON
innodb_adaptive_hash_index=ON
innodb_autoinc_lock_mode=1
innodb_buffer_pool_instances=8

#default
innodb_buffer_pool_size= 128M
innodb_data_file_path=ibdata1:32M;ibdata2:16M:autoextend
innodb_doublewrite=ON
innodb_file_format=Barracuda
innodb_file_per_table=ON
innodb_flush_log_at_trx_commit=1
innodb_flush_method=O_DIRECT
innodb_io_capacity=1000
innodb_lock_wait_timeout=10
innodb_log_buffer_size=64M
innodb_log_file_size=512M
innodb_log_files_in_group=4
innodb_max_dirty_pages_pct=60
innodb_open_files=60000
innodb_purge_threads=1
innodb_read_io_threads=4
innodb_stats_on_metadata=OFF
innodb_support_xa=ON
innodb_use_native_aio=OFF
innodb_write_io_threads=10

[mysqld_safe]
datadir=/u02/data/3308

复制
  1. 初始化多实例数据库

切换到mysql用户
su - mysql

# 初始化数据库实例
/u02/mysql/bin/mysqld --defaults-file=/u02/conf/my3308.cnf --initialize --user=mysql

# 使用独立参数启动实例
/u02/mysql/bin/mysqld_safe --defaults-file=/u02/conf/my3308.cnf &

# 登陆3308实例
/u02/mysql/bin/mysql --socket=/u02/run/3308/mysql.sock

修改root密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
flush privileges;

# 关闭实例
/u02/mysql/bin/mysqladmin --socket=/u02/run/3308/mysql.sock shutdown &

复制

到这里Mysql5.7源码安装就结束了

喜欢的同学可以关注我的公众号(db_arch)(Mysql数据库运维与架构设计)


文章转载自MySQL数据库运维技术栈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论