1、查询centos7自带免费的数据库mariadb
rpm -qa | grep -i mariadb
2、删除自带的数据库
rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64
3、下载MySQL版本及解压
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.36-1.el7.x86_64.rpm-bundle.tar
tar –xvf mysql-5.7.36-1.el7.x86_64.rpm-bundle.tar
4、 有4个:分别是 server、client、common、libs按照依赖关系依次安装rpm包
依赖关系依次为common→libs→client→server
5、安装依赖包
yum -y install libaio net-tools perl
6、使用 rpm 命令安装MySql组件
rpm -ivh mysql-community-common-5.7.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.36-1.el7.x86_64.rpm
7、启动并创建MySql密码
systemctl start mysqld.service 启动mysql
systemctl status mysqld.service 查看mysql状态
systemctl stop mysqld.service 关闭mysql
8、获取临时密码
grep 'temporary password' /var/log/mysqld.log
9、登录MySQL并设置密码
mysql -uroot -p
SET PASSWORD = PASSWORD('$V4LEWHx$@');
如果测试环境里你不想MySQL root密码这么复杂,可以修改哈
不管设置 validate_password_length=1,还是2,3,4 ,'有效密码长度'这个参数的实际值都是4。超过4后设置是多少实际就是多少。set global validate_password_policy=1;
10、关闭MySQL服务
systemctl stop mysqld.service
11、进入MySQL系统目录
cd /var/lib/
12、复制目录到指定位置
cp -a mysql /data
13、sock链接及授权
ln -s /data/mysql/mysql3306/mysql.sock /var/lib/mysql/mysql.sock
chown mysql:mysql /data/mysq*
14、修改配置文件
vi /etc/my.cnf
[client]
#password = your_password
port = 3306
socket = /data/mysql/mysql3306/mysql.sock
default-character-set=utf8
[mysqld]
collation-server = utf8_general_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
binlog_cache_size=20M
thread_stack = 512K
join_buffer_size=20M
query_cache_type = 1
max_heap_table_size = 2048M
port=3306
socket=/data/mysql/mysql3306/mysql.sock
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql/mysql3306/data
default_storage_engine = InnoDB
performance_schema_max_table_instances = 400
table_definition_cache = 400
key_buffer_size = 1024M
max_allowed_packet=100G
table_open_cache = 4096
sort_buffer_size=4M
net_buffer_length = 4K
read_buffer_size = 4096K
read_rnd_buffer_size = 2048K
myisam_sort_buffer_size = 128M
thread_cache_size = 512
query_cache_size = 384M
tmp_table_size = 2048M
max_connections=10240
max_connect_errors = 100
open_files_limit = 65535
log-bin=mysql-bin
binlog_format=mixed
server_id=1
expire_logs_days=7
slow_query_log=on
slow_query_log_file=/data/mysql/mysql3306/logs/slow.log
long_query_time=0.5
log_queries_not_using_indexes=1
log_error=/data/mysql/mysql3306/logs/error.log
log_bin=/data/mysql/mysql3306/logs/mysql-bin
gtid_mode=on
enforce_gtid_consistency=true
log_slave_updates=1
wait_timeout=1800
innodb_buffer_pool_size=8096M
innodb_log_file_size=256M
innodb_log_buffer_size=64M
innodb_flush_log_at_trx_commit=1
innodb_log_files_in_group=2
max_binlog_cache_size=8096M
max_binlog_size=8096M
secure_file_priv=/tmp/
binlog_group_commit_sync_delay=100 #主库
binlog_group_commit_sync_no_delay_count=20 #主库
slave_parallel_type=logical_clock #从库配置
slave_parallel_workers=4 #从库配置
transaction_write_set_extraction=XXHASH64 #从库配置
binlog_transaction_dependency_tracking=writeset #从库配置
slave_preserve_commit_order=1 #从库配置
sql-mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#备份MySQL数据库的工具,可以将数据库导出为SQL文件
[mysqldump]
quick
max_allowed_packet = 500M
#字符集默认设置及禁用自动补全功能
[mysql]
no-auto-rehash
default-character-set=utf8
#用于检查和修复MyISAM存储引擎的表的工具
[myisamchk]
key_buffer_size = 512M
sort_buffer_size = 20M
read_buffer = 20M
write_buffer = 20M
#用于复制MyISAM数据库的工具,通常用于备份
[mysqlhotcopy]
interactive-timeout
15、关闭SElinux
vi /etc/selinux/config
SELINUX=disabled
reboot
16、如果开启了防火墙,请释放端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
17、测试
CREATE DATABASE IF NOT EXISTS test
-> DEFAULT CHARACTER SET utf8
-> DEFAULT COLLATE utf8_general_ci;
说明:其实到第九步结束rpm安装就已经完成,之所以接着往下走的原因是因为rpm安装的MySQL数据存在系统盘,而系统盘默认都是小于50G的。点击可以查看MySQL源码安装