到官网https://dev.mysql.com/downloads/repo/yum/下载路径
rpm -ivh mysql80-community-release-el7-3.noarch.rpm
yum clean all # 删除缓存数据
yum makecache # 创建元数据缓存
yum list mysql-server
yum -y install mysql-server.x86_64 #下载数据库
备份数据库配置文件:
mv /etc/my.cnf /etc/my.cnf.back
mv /etc/my.cnf.d /etc/my.cnf.d.back
使用yum下载,并创建好文件路径
mkdir -p /apphome/logs/mysql8/run
mkdir -p /apphome/data/mysql8
cd /apphome/logs/mysql8/
chown -R mysql. .
cd /apphome/data/mysql8/
chown -R mysql. .
修改配置文件
vim /etc/my.cnf
[client]
port = 3306
socket = /apphome/logs/mysql8/run/mysql.sock
[mysql]
no-auto-rehash
prompt = "\\u@\\h:\\d \\r:\\m:\\s> "
[mysqld]
server-id = 51
port = 3306
mysqlx_port = 3060
datadir = /apphome/data/mysql8
socket = /apphome/logs/mysql8/run/mysql.sock
mysqlx_socket = /apphome/logs/mysql8/run/mysqlx.sock
pid-file = /apphome/logs/mysql8/run/mysqld.pid
default-authentication-plugin = mysql_native_password
lower_case_table_names = 1
max_connections = 10000
max_connect_errors = 10000
max_user_connections = 1000
##### server log #####
# 服务日志
log-error = /apphome/logs/mysql8/mysqlerror.log
# 启用所有日志
# general-log-file = /apphome/logs/general.log
# 启用慢查询日志
# slow-query-log-file = /apphome/logs/query.log
# 默认时间10秒
# long-query-time = 5
# 记录没有使用索引查询的sql命令
# log-queries-not-using-indexes
gtid-mode = on
enforce-gtid-consistency = on
# log-bin = binlog
sync_binlog = 100
# binlog_format = "mixed"
skip-log-bin ###不开启binlog日志
# # master 只允许同步的库,只不允许同步的库
# binlog_do_db = dbname1,dbname2
# binlog_ignore_db = dbname1,dbname2
# # slave 级联复制,只同步的库,只不同步的库
# log_slave_updates
# replicate_do_db = dbname1,dbname2
# replicate_ignore_db = dbname1,dbname2
default_storage_engine = InnoDB
innodb_file_per_table = 1
innodb_open_files = 500
innodb_buffer_pool_size = 1024M ##数据库内存占用大小关键参数
innodb_write_io_threads = 4
innodb_read_io_threads = 4
innodb_thread_concurrency = 0
innodb_purge_threads = 1
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 2M
innodb_log_file_size = 32M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
innodb_data_file_path=ibdata1:12M;ibdata2:1G:autoextend
bulk_insert_buffer_size = 8M
myisam_sort_buffer_size = 64M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
interactive_timeout = 28800
wait_timeout = 28800
启动数据库
systemctl start mysqld
使用原始密码登录之后修改密码与规则。 ###Linux8版本的mysql8 下载后直接-uroot进入更改密码就好 不需要前面两步
mysql -uroot -p`cat /apphome/logs/mysql8/mysqld.log | grep pass | awk '{print $NF}'`
> set global validate_password.length=1;
> set global validate_password.policy=0;
> alter user 'root'@'localhost' identified with mysql_native_password BY 'database@123';
> flush privileges;
添加用户与授权:
> create database csdb;
> create user 'csuser'@'192.168.0.151' identified by 'pass@123';
> grant all privileges on csdb.* to 'csuser'@'192.168.0.151';
> flush privileges;
到此,数据库就可以用了
下面分享一个关于selinux的脚本,也没用过,大家看着用把
# SElinux
if [ "`getenforce`" = "Enforcing" ]; then
getsebool -a | grep mysql
command -v semanage || { echo >&2 "[*] semanage命令不存在,将安装该命令..."; yum install -y policycoreutils-python; }
semanage port --list | grep mysql
semanage port -a -t mysqld_port_t -p tcp "3306"
semanage fcontext -a -t mysqld_db_t "/var/lib/mysql8(/.*)?"
semanage fcontext -a -t mysqld_log_t "/var/log/mysql8(/.*)?"
semanage fcontext -a -t mysqld_var_run_t "/var/run/mysqld8(/.*)?"
setsebool -P mysql_connect_any=1
setsebool -P selinuxuser_mysql_connect_enabled=1
restorecon -FRv "/var/run/mysqld8" "/var/log/mysql8"
fi