二进制部署mysql
文章目录
前言
mysql是当今最流行的关系型数据库管理系统之一,二进制存储方式是在mysql中使用的一种普遍存储方式,采用二进制存储方式的优势已被证明在mysql数据库中有着重要的作用。
一、环境准备
1.卸载其他版本mysql
卸载已经有的mysql包
for i in `rpm -qa|grep mysql`;do rpm -e $i --nodeps;done
删除数据目录和配置文件
rm -rf /var/lib/mysql && rm -rf /etc/my.cnf
2.卸载mariadb
for i in `rpm -qa|grep mariadb`;do rpm -e $i --nodeps;done
3.安装所需要的依赖包
yum -y install libaio
yum -y install net-tools
4.下载数据包
https://downloads.mysql.com/archives/community/
找到所需要的mysql版本下载
通过rz上传,若未找到命令说明需要安装 lrzsz
yum -y install lrzsz
二、安装步骤
1、解压
将上传的安装包并解压到/usr/local/mysql下
tar -xvf mysql-8.0.25-linux-glibc2.12-x86_64.tar.xz -C /usr/local/
改名字
mv mysql-8.0.25-linux-glibc2.12-x86_64/ mysql
2、新建mysql用户组和mysql用户并授权
groupadd mysql
useradd -g mysql mysql
chown -R mysql.mysql /usr/local/mysql
3、新建mysql数据目录并授权
mkdir -p /data/mysql/{data,log,binlog,conf,tmp}
chown -R mysql.mysql /data/mysql
4、初始化并启动mysql
切换mysql用户
su - mysql
配置mysql配置文件
vi /data/mysql/conf/my.cnf
内容如下
[mysqld]
lower_case_table_names = 1
user = mysql
server_id = 1
port = 3306
default-time-zone = '+08:00'
enforce_gtid_consistency = ON
gtid_mode = ON
binlog_checksum = none
default_authentication_plugin = mysql_native_password
datadir = /data/mysql/data
pid-file = /data/mysql/tmp/mysqld.pid
socket = /data/mysql/tmp/mysqld.sock
tmpdir = /data/mysql/tmp/
skip-name-resolve = ON
open_files_limit = 65535
table_open_cache = 2000
#################innodb########################
innodb_data_home_dir = /data/mysql/data
innodb_data_file_path = ibdata1:512M;ibdata2:512M:autoextend
innodb_buffer_pool_size = 512M
innodb_flush_log_at_trx_commit = 1
innodb_io_capacity = 600
innodb_lock_wait_timeout = 120
innodb_log_buffer_size = 8M
innodb_log_file_size = 200M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 85
innodb_read_io_threads = 8
innodb_write_io_threads = 8
innodb_thread_concurrency = 32
innodb_file_per_table
innodb_rollback_on_timeout
innodb_undo_directory = /data/mysql/data
innodb_log_group_home_dir = /data/mysql/data
###################session###########################
join_buffer_size = 8M
key_buffer_size = 256M
bulk_insert_buffer_size = 8M
max_heap_table_size = 96M
tmp_table_size = 96M
read_buffer_size = 8M
sort_buffer_size = 2M
max_allowed_packet = 64M
read_rnd_buffer_size = 32M
############log set###################
log-error = /data/mysql/log/mysqld.err
log-bin = /data/mysql/binlog/binlog
log_bin_index = /data/mysql/binlog/binlog.index
max_binlog_size = 500M
slow_query_log_file = /data/mysql/log/slow.log
slow_query_log = 1
long_query_time = 10
log_queries_not_using_indexes = ON
log_throttle_queries_not_using_indexes = 10
log_slow_admin_statements = ON
log_output = FILE,TABLE
master_info_file = /data/mysql/binlog/master.info
执行初始化命令
/usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/conf/my.cnf --initialize-insecure --user=mysql
(查看日志文件,解决error,没有问题时启动mysql)
tail -50f /data/mysql/log/mysqld.err
启动mysql
/usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysql/conf/my.cnf &
检查端口是否起来
ss -ntl|grep 3306
5、登录MySQL并修改密码
eixt 结束mysql用户,使用root用户,登录mysql
/usr/local/mysql/bin/mysql -S /data/mysql/tmp/mysqld.sock -p
第一次登录密码敲回车,首次使用sock文件登录mysql是不需要密码的。
修改密码:
alter user 'root'@'localhost' identified by '自己需要修改的密码';
刷新权限
flush privileges;
退出,用新密码重新登录mysql
/usr/local/mysql/bin/mysql -S /data/mysql/tmp/mysqld.sock -p
输入新密码登录mysql
总结
想要在一台机器上部署两台版本不一样的mysql只需要改变端口,通过创建不同的目录来支持不同的mysql实例。