今天给小伙伴们介绍一下Mysql5.7源码安装,在安装过程中还是碰到了一些问题,下面介绍安装步骤时,会告诉大家问题在哪儿,怎么解决的,废话不多说,下面就可以说说安装全过程
创建用户
groupadd mysql
useradd -d home/mysql -g mysql mysql
echo "mysql123" | passwd --stdin mysql复制
修改limit参数值
echo "* soft nofile 65536" >> etc/security/limits.conf
echo "* hard nofile 65536" >> etc/security/limits.conf复制
安装依赖包
yum install -y cmake gcc gcc-c++ ncurses-devel bison zlib libxml openssl openssl-devel
复制
创建目录
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
复制
源码编译安装
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
设置配置参数,这里提供的参数已经包含配置主从复制的参数,按照下面的参数启动数据库,非常简单就可以搭建好主从复制
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复制
初始化多实例数据库
切换到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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【专家有话说第五期】在不同年龄段,DBA应该怎样规划自己的职业发展?
墨天轮编辑部
1407次阅读
2025-03-13 11:40:53
MySQL8.0统计信息总结
闫建(Rock Yan)
534次阅读
2025-03-17 16:04:03
2月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
488次阅读
2025-03-13 14:38:19
SQL优化 - explain查看SQL执行计划(一)
金同学
419次阅读
2025-03-13 16:04:22
MySQL突然崩溃?教你用gdb解剖core文件,快速锁定“元凶”!
szrsu
408次阅读
2025-03-13 00:29:43
MySQL生产实战优化(利用Index skip scan优化性能提升257倍)
chengang
359次阅读
2025-03-17 10:36:40
MySQL数据库当前和历史事务分析
听见风的声音
337次阅读
2025-04-01 08:47:17
MySQL 生产实践-Update 二级索引导致的性能问题排查
chengang
298次阅读
2025-03-28 16:28:31
墨天轮个人数说知识点合集
JiekeXu
290次阅读
2025-04-01 15:56:03
一键装库脚本3分钟极速部署,传统耗时砍掉95%!
IT邦德
281次阅读
2025-03-10 07:58:44