#修改为阿里源
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
yum upgrade -y
#删除系统自带mariadb
rpm -qa | grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64
yum remove mariadb-libs (#如删除失败可先更新系统后再执行)
#安装mysql8.0源
rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
#安装mysql公钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023
#更新系统和源
yum clean all
yum makecache
#安装mysql8.0
yum install -y mysql-community-server
#最后按需创建实例
备份原配置文件、创建慢日志、数据库目录
cp /etc/my.cnf /etc/my.cn.bak
编辑配置:vi /etc/my.cnf
[client]
port=3306
socket=/var/lib/mysql/mysql.sock
default-character-set=utf8mb4
[mysqld]
log-bin=mysql-bin #开启主从binlog(二进制日志),主库必须开启
#binlog_format=mixed #指定二进制日志格式为mixed,即在语句和行两种模式之间自动切换
binlog-format=ROW #日志格式
#server-id=1 #这是我配置双活的参数,配置server-id(唯一)标识,必须与从库不一致
#relay-log=relay-bin #指定中继日志文件的名称为relay-bin,用于在主从复制中传输数据
#relay-log-index=slave-relay-bin.index #指定中继日志索引文件的名称,用于记录中继日志文件的位置。
#auto_increment_increment=2 #指定自增长ID的增量为2,用于在主从复制中避免ID冲突。
#auto_increment_offset=2 #指定自增长ID的起始值为1,用于在主从复制中避免ID冲突。
[mysql]
default-character-set=utf8mb4
no-auto-rehash
[mysqld]
port=3306
max_connections=1000
datadir=/data/mysql #根据自身情况修改
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
character-set-client-handshake=FALSE
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
init_connect='SET NAMES utf8mb4'
#lower_case_table_names=1
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
skip-external-locking
skip_name_resolve
max_connect_errors=10
slow_query_log=on
long_query_time=3
slow_query_log_file=/var/log/slowsql.log
key_buffer_size=128M
read_buffer_size=1M
read_rnd_buffer_size=2M
max_allowed_packet=1M
table_open_cache=64
sort_buffer_size=512K
net_buffer_length=8K
default_storage_engine=InnoDB
innodb_buffer_pool_size=1024M
innodb_flush_log_at_trx_commit=2
innodb_log_file_size=256M
innodb_log_buffer_size=8M
innodb_log_files_in_group=3
innodb_lock_wait_timeout=50
创建慢日志、数据目录
touch /var/log/slowsql.log
mkdir -p /data/mysql
变更权限
chown mysql:mysql /var/log/slowsql.log
chmod 664 /var/log/slowsql.log
chown -R mysql:mysql /var/lib/mysql
chmod -R 755 /var/lib/mysql
初始货数据库
mysqld --user=mysql --initialize
获取初始密码
cat /var/log/mysqld.log | grep password
开启数据库,登陆并修改密码
systemctl start mysqld
systemct status mysqld #检查服务状态
mysql -uroot -p
输入上面获取的初始密码
ALTER USER 'root'@localhost'' IDENTIFIED BY 'password';
创建远程创建用户admin,并授权所有数据库权限
ALTER USER 'admin'@'' IDENTIFIED WITH mysql_native_password BY 'password';
FLUSH PRIVILEGES;
退出 quit
添加防火墙端口3306
firewall-cmd --zone=public --add-port=3306/tcp --permanent
systemctl restart firewalld
把数据库添加为开机启动
systemctl enable mysqld
关闭SElinux
vi /etc/selinux/config
修改 SELINUX=enforcing =》 SELINUX=disabled